主要内容

detectCircleGridPoints

检测图像中的圆网格模式

自从R2021b

描述

单一图像网格圈检测

例子

imagePoints= detectCircleGridPoints (,patternDims)检测到一个圆网格在二维真彩或灰度图像,。圆网格模式的更多细节,请参阅圆网格模式

(imagePoints,imagesUsed)= detectCircleGridPoints (imageFileNames,patternDims)检测到一个圆网格在指定的图像文件imageFileNames,另外返回列表的图片圈检测到电网imagesUsed

(___)= detectCircleGridPoints (图片,patternDims)检测到一个圆网格在指定的图像图片

立体圆网格检测

例子

(imagePoints,pairsUsed)= detectCircleGridPoints (imageFileNames1,imageFileNames2,patternDims)检测到一个圆网格在指定的立体对图像文件imageFileNames1imageFileNames2。另外的函数返回一个列表的双模式检测pairsUsed

(___)= detectCircleGridPoints (images1,images2,patternDims)检测到一个圆网格在指定的立体对图像文件images1images2

可选参数

(___)= detectCircleGridPoints (___,名称=值)指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,detectCircleGridPoints(,patternDims,PatternType =“对称”)检测到一个对称圆网格在指定的工作区。

例子

全部折叠

一个图像包含一个圆网格模式加载到工作区。

imageFileName = fullfile (toolboxdir (“愿景”),“visiondata”,“校准”,“circleGrid”,“单一”,“image08.jpg”);I = imread (imageFileName);

定义的维度圆网格模式。

patternDims = 11 [8];

检测圆网格点。

imagePoints = detectCircleGridPoints(我patternDims PatternType =“对称”)
imagePoints =88×2395.1729 358.4451 383.5573 388.4410 370.8857 420.9698 356.9887 456.5418 341.6686 495.7388 325.0617 538.9151 306.5055 586.8763 285.8323 640.1285 436.4195 363.5016 426.5806 393.4896⋮

显示检测到的点的形象。

J = insertText(我imagePoints 1:尺寸(imagePoints, 1));J = insertMarker (imagePoints,“x”颜色=“绿色”、大小= 5);imshow (J)标题(“发现一个圆网格尺寸”+ mat2str (patternDims))

图包含一个坐标轴对象。坐标轴对象与标题发现一圈网格尺寸11[8]包含一个类型的对象的形象。

指定您校准图片。

imageDir = fullfile (toolboxdir (“愿景”),“visiondata”,“校准”,“circleGrid”,“立体”);leftImages = imageDatastore (fullfile (imageDir“左”));rightImages = imageDatastore (fullfile (imageDir“对”));images1 = leftImages.Files;images2 = rightImages.Files;

定义的维度圆网格模式。

patternDims = 11 [4];

检测图像中的圆网格点。

[imagePoints, pairsUsed] = detectCircleGridPoints (images1、images2 patternDims);

从第一个四个摄像头的图像显示点。

图t1 = tiledlayout (2, 2, TileSpacing =“紧凑”填充=“紧凑”);i = 1:4 nexttile imshow (images1{我})情节(imagePoints(:, 1,我,1),imagePoints(:, 2,我,1),“gx”);结束标题(t1,“相机1”)

图包含4轴对象。坐标轴对象1包含2图像类型的对象,线。一个或多个行显示的值只使用标记轴对象2包含对象类型的形象,线。一个或多个行显示它的值只使用标记轴对象3包含2图像类型的对象,线。一个或多个行显示它的值只使用标记轴对象4包含2图像类型的对象,线。一个或多个行显示的值只使用标记

从第一个四个摄像头的图像两个显示点。

images2 = images2 (pairsUsed);图t2 = tiledlayout (2, 2, TileSpacing =“紧凑”填充=“紧凑”);i = 1:4 nexttile imshow (images2{我})情节(imagePoints(:, 1,我,2),imagePoints(:, 2,我,2),“gx”);结束标题(t2,“相机2”)

图包含4轴对象。坐标轴对象1包含2图像类型的对象,线。一个或多个行显示的值只使用标记轴对象2包含对象类型的形象,线。一个或多个行显示它的值只使用标记轴对象3包含2图像类型的对象,线。一个或多个行显示它的值只使用标记轴对象4包含2图像类型的对象,线。一个或多个行显示的值只使用标记

输入参数

全部折叠

维模式,指定为一种双元素向量代表的圈数xy图像的尺寸。圆网格模式的更多细节,请参阅圆网格模式

不对称 对称的

不对称电网

对称网格

形象,指定为一个二维真彩图像和灰度图像。

数据类型:uint8|int16|uint16||

图片,作为一个指定H——- - - - - -W——- - - - - -numColorChannels——- - - - - -numImages数组,HW分别描述每个图像的高度和宽度。numColorChannels是颜色通道的数量在每一个图像,然后呢numImages是图片的数量。

数据类型:uint8|int16|uint16||

立体图像从相机1,指定为一个H——- - - - - -W——- - - - - -numColorChannels——- - - - - -numImages数组,HW分别描述每个图像的高度和宽度。numColorChannels是颜色通道的数量在每一个图像,然后呢numImages图像的数量吗

数据类型:uint8|int16|uint16||

从相机两个立体图像,作为指定H——- - - - - -W——- - - - - -numColorChannels——- - - - - -numImages数组,HW分别描述每个图像的高度和宽度。numColorChannels是颜色通道的数量在每一个图像,然后呢numImages图像的数量吗

数据类型:uint8|int16|uint16||

图像文件名称,指定为一个单元阵列特征向量或一个字符串数组。

立体相机图像文件名称,指定为一个单元阵列特征向量或一个字符串数组。

为相机两个立体图像文件名称,指定为一个单元阵列特征向量或一个字符串数组。

名称-值参数

例子:detectCircleGridPoints(,patternDims,PatternType =“对称”)检测到一个对称圆网格在指定的工作区。

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

圆网格模式类型,指定为“非对称”“对称”

圈颜色,指定为“黑色”“白色”。选择圆的颜色与背景最强烈的对比。

输出参数

全部折叠

检测到圆的中心坐标网格,作为一个返回2矩阵或一个2 -numPairs2数组。是圆的数量检测到网格,计算网格圈的数量的产品中发现每个维度。矩阵的每一行或指定数组x- - - - - -y圆的中心的坐标网格。

  • 单一的图像——这个观点是一个当单一图像中的圆网格检测2矩阵。

  • ——这种观点是一种立体像对2 -numPairs2阵列检测圆网格在立体对图像。numPairs是一个圆的图像对的数量检测到电网。imagePoints(:::1)从第一组图片,返回点imagePoints(:::2)从第二组的点。

模式检测国旗,作为一个逻辑向量返回。的值真正的imagesUsed向量表示模式中已经检测到相应的形象。

立体模式检测国旗,作为一个逻辑向量返回。的值真正的pairsUsed向量表示模式中已经检测到相应的图像。

算法

圆网格检测模式,模式必须:

  • 包含至少16圈

  • 完全可见的形象一个相机或在两个一对立体摄像机的图像

版本历史

介绍了R2021b