文档

detectCheckerboardPoints

在图像检测棋盘模式

描述

例子

(imagePoints,boardSize)= detectCheckerboardPoints ()检测到一个黑白棋盘的大小大于4×4块在二维真彩或灰度图像。函数返回检测到的点和维度的棋盘。

(imagePoints,boardSize,imagesUsed)= detectCheckerboardPoints (imageFileNames)检测到一个棋盘模式的一组输入图像,作为数组提供文件名。

(imagePoints,boardSize,imagesUsed)= detectCheckerboardPoints (图片)检测到一个棋盘模式的一组输入图像,提供一系列的灰度或真彩图像。

(imagePoints,boardSize,pairsUsed)= detectCheckerboardPoints (imageFileNames1,imageFileNames2)检测到一个棋盘模式立体对图像,作为细胞阵列提供的文件名称。

(imagePoints,boardSize,pairsUsed)= detectCheckerboardPoints (images1,images2)在立体对图像,检测到一个棋盘模式作为数组提供的灰度或真彩图像。

(imagePoints,boardSize,pairsUsed)= detectCheckerboardPoints (___,“MinCornerMetric”, 0.15)集角落度量阈值,指定为负的标量。当图像噪声或高度变形,增加这个值减少的数量错误的角落。

例子

全部折叠

创建一个单元阵列校正图像的文件名。

我= 1:5 imageFileName = sprintf (“图像% d.tif”,我);imageFileNames{我}= fullfile (matlabroot,“工具箱”,“愿景”,“visiondata”,“校准”,“摄像头”,imageFileName);结束

在图像检测校准模式。

[imagePoints, boardSize imagesUsed] = detectCheckerboardPoints (imageFileNames);

显示检测到的点。

imageFileNames = imageFileNames (imagesUsed);i = 1:元素个数(imageFileNames)我= imread (imageFileNames{我});次要情节(2,2,我);imshow(我);持有;情节(imagePoints(:, 1,我),imagePoints(:, 2,我)“罗”);结束

在立体图像。

numImages = 4;images1 =细胞(1、numImages);images2 =细胞(1、numImages);i = 1: numImages images1{我}= fullfile (matlabroot,“工具箱”,“愿景”,“visiondata”,“校准”,“立体”,“左”sprintf (“左% 02 d.png”,我));images2{我}= fullfile (matlabroot,“工具箱”,“愿景”,“visiondata”,“校准”,“立体”,“对”sprintf (“对% 02 d.png“,我));结束

检测的棋盘格图像。

[imagePoints, boardSize pairsUsed] =detectCheckerboardPoints (images1 images2);

从images1显示点。

images1 = images1 (pairsUsed);图;i = 1:元素个数(images1)我= imread (images1{我});次要情节(2,2,我);imshow(我);持有;情节(imagePoints(:, 1,我,1),imagePoints(:, 2,我,1),“罗”);结束注释(“文本框”(0 0.1 0.9 - 1),“字符串”,“相机1”,“EdgeColor”,“没有”,“HorizontalAlignment”,“中心”)

从images2显示点。

images2 = images2 (pairsUsed);图;i = 1:元素个数(images2)我= imread (images2{我});次要情节(2,2,我);imshow(我);持有;情节(imagePoints(:, 1,我,2),imagePoints(:, 2,我,2),“罗”);结束注释(“文本框”(0 0.1 0.9 - 1),“字符串”,“照相机2”,“EdgeColor”,“没有”,“HorizontalAlignment”,“中心”)

输入参数

全部折叠

输入图像中指定一个——- - - - - -N3真彩或——- - - - - -N二维灰度。输入图像必须是真实和nonsparse。函数可以检测4×4方格的棋盘格的最小大小。

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

图像文件的名字,作为一个指定N元胞数组的N文件的名字。

文件名相机1图片,作为一个指定N元胞数组的N文件的名字。这个数组中包含的图片必须在同一订单中包含的图片imageFileNames2立体像对,形成。

为照相机2图片文件名称,指定为一个N元胞数组的N文件的名字。这个数组中包含的图片必须在同一订单中包含的图片imageFileNames1立体像对,形成。

图片,作为一个指定H——- - - - - -W——- - - - - -B——- - - - - -F数组包含一组灰度或真彩图像。输入尺寸是:

H代表图像的高度。
W代表图像的宽度。
B代表颜色通道。的值1表示一个灰度图像,的值3显示真彩图像。
F代表图像帧的数量。

图片,作为一个指定H——- - - - - -W——- - - - - -B——- - - - - -F数组包含一组灰度或真彩图像。输入尺寸是:

H代表图像的高度。
W代表图像的宽度。
B代表颜色通道。的值1表示一个灰度图像,的值3显示真彩图像。
F代表图像帧的数量。

图片,作为一个指定H——- - - - - -W——- - - - - -B——- - - - - -F数组包含一组灰度或真彩图像。输入尺寸是:

H代表图像的高度。
W代表图像的宽度。
B代表颜色通道。的值1表示一个灰度图像,的值3显示真彩图像。
F代表图像帧的数量。

输出参数

全部折叠

检测到棋盘角坐标,作为一个返回2为一个图像矩阵。对多个图像,点作为一个返回2 -数量的图片数组,立体对图像,作为一个函数返回点2 -对数量——- - - - - -数量的摄像头数组中。

立体像对的,imagePoints(:::1)从第一组图像的点,和imagePoints(:::2)第二组图片的点。输出包含的数量(xy)坐标。每个坐标代表一个点在广场角落发现在棋盘上。点的数量函数返回的值取决于boardSize,这表明广场发现的数量。探测点亚像素精度的函数。

函数计算点的数量,,如下所示:

=刺激(boardSize1)。

如果不能检测到棋盘:
imagePoints=[]
boardSize=(0,0)

当你指定imageFileNames输入,函数可以返回imagePoints作为一个2 -N数组中。在这个数组,N代表了图像中检测到一个棋盘。

棋盘维度,作为2-element[返回高度,宽度)向量。棋盘的尺寸表达的方格的数量。

模式检测国旗,作为一个返回N1逻辑向量N逻辑值。函数输出相同数量的逻辑值和输入图像。一个真正的值表示该模式中检测出相应的图像。一个值表示该函数没有检测到一个模式。

立体模式检测国旗,作为一个返回N1逻辑向量N逻辑值。函数输出相同数量的逻辑值和输入图像。一个真正的值表示模式检测到相应的立体图像对。一个值表示该函数不检测模式。

引用

[1]盖革,。,F。米oosmann, O. Car, and B. Schuster. "Automatic Camera and Range Sensor Calibration using a Single Shot,"机器人与自动化国际会议上)举行(“国际机器人与自动化会议”美国圣保罗,2012年5月。

扩展功能

介绍了R2014a