OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配
| 枚举 | 函数
用于鲁棒相机姿态估计的ArUco标记和板检测

详细描述

ArUco标记检测正方形身份标记(也称为增强现实标记)对于简单、快速且鲁棒地估计相机姿态很有用。

ArucoDetector类的主体功能是检测图像中的标记。如果标记以板的形式组合,则可以使用ArucoDetector::refineDetectedMarkers()尝试恢复未检测到的标记。Aruco标记还可以用于高级棋盘角查找。为此,在CharucoBoard中将标记分组,并使用CharucoDetector::detectBoard()查找棋盘的角。

该实现基于R. Muñoz-Salinas和S. Garrido-Jurado的ArUco库[99]

还可以根据AprilTag 2[291]身份标记检测方法检测标记。

另见
[99] 此代码最初由Sergio Garrido-Jurado为2015年Google Summer of Code项目(GSoC 15)开发。

类  cv::aruco::ArucoDetector
 ArucoDetector类的主要功能是通过detectMarkers()方法在图像中检测标记。更多...
 
类  cv::aruco::Board
 ArUco标记的板。更多...
 
类  cv::aruco::CharucoBoard
 ChArUco板是一个平面棋盘,其中标记位于棋盘的白格内。更多...
 
类  cv::aruco::CharucoDetector
 
结构  cv::aruco::CharucoParameters
 
结构  cv::aruco::DetectorParameters
 结构体DetectorParameters由ArucoDetector使用。更多...
 
类  cv::aruco::Dictionary
 Dictionary由相同大小的唯一ArUco标记组成。更多...
 
类  cv::aruco::GridBoard
 具有标记网格排列的平面板。更多...
 
结构  cv::aruco::RefineParameters
 结构体 RefineParametersArucoDetector 使用 更多信息...
 

枚举类型

枚举cv::aruco::CornerRefineMethod {
  cv::aruco::CORNER_REFINE_NONE ,
  cv::aruco::CORNER_REFINE_SUBPIX ,
  cv::aruco::CORNER_REFINE_CONTOUR ,
  cv::aruco::CORNER_REFINE_APRILTAG
}
 
枚举cv::aruco::PredefinedDictionaryType {
  cv::aruco::DICT_4X4_50 = 0 ,
  cv::aruco::DICT_4X4_100 ,
  cv::aruco::DICT_4X4_250 ,
  cv::aruco::DICT_4X4_1000 ,
  cv::aruco::DICT_5X5_50 ,
  cv::aruco::DICT_5X5_100 ,
  cv::aruco::DICT_5X5_250 ,
  cv::aruco::DICT_5X5_1000 ,
  cv::aruco::DICT_6X6_50 ,
  cv::aruco::DICT_6X6_100 ,
  cv::aruco::DICT_6X6_250 ,
  cv::aruco::DICT_6X6_1000 ,
  cv::aruco::DICT_7X7_50 ,
  cv::aruco::DICT_7X7_100 ,
  cv::aruco::DICT_7X7_250 ,
  cv::aruco::DICT_7X7_1000 ,
  cv::aruco::DICT_ARUCO_ORIGINAL ,
  cv::aruco::DICT_APRILTAG_16h5 ,
  cv::aruco::DICT_APRILTAG_25h9 ,
  cv::aruco::DICT_APRILTAG_36h10 ,
  cv::aruco::DICT_APRILTAG_36h11 ,
  cv::aruco::DICT_ARUCO_MIP_36h12
}
 预定义的标记字典/集。 更多信息...
 

函数

void cv::aruco::drawDetectedCornersCharuco (InputOutputArray image, InputArray charucoCorners, InputArray charucoIds=noArray(), Scalar cornerColor=Scalar(255, 0, 0))
 绘制一组Charuco角。
 
void cv::aruco::drawDetectedDiamonds (InputOutputArray image, InputArrayOfArrays diamondCorners, InputArray diamondIds=noArray(), Scalar borderColor=Scalar(0, 0, 255))
 在图像中绘制检测到的Diamond标记。
 
void cv::aruco::drawDetectedMarkers (InputOutputArray image, InputArrayOfArrays corners, InputArray ids=noArray(), Scalar borderColor=Scalar(0, 255, 0))
 在图像中绘制检测到的标记。
 
Dictionary cv::aruco::extendDictionary (int nMarkers, int markerSize, const Dictionary &baseDictionary=Dictionary(), int randomSeed=0)
 通过新的nMarkers扩展基本字典。
 
void cv::aruco::generateImageMarker (const Dictionary &dictionary, int id, int sidePixels, OutputArray img, int borderBits=1)
 生成一个标准标记图像。
 
Dictionary cv::aruco::getPredefinedDictionary (int dict)
 返回由DICT_*引用的预定义字典之一。
 
Dictionary cv::aruco::getPredefinedDictionary (PredefinedDictionaryType name)
 返回在PredefinedDictionaryType中定义的预定义字典之一。
 

枚举类型文档

◆ CornerRefineMethod

包含头文件 <opencv2/objdetect/aruco_detector.hpp>

枚举值
CORNER_REFINE_NONE 
Python: cv.aruco.CORNER_REFINE_NONE

基于ArUco方法的标签和角检测。

CORNER_REFINE_SUBPIX 
Python: cv.aruco.CORNER_REFINE_SUBPIX

ArUco方法并使用角亚像素精度来细化角的位置。

CORNER_REFINE_CONTOUR 
Python: cv.aruco.CORNER_REFINE_CONTOUR

ArUco方法并使用轮廓点线性拟合来细化角的位置。

CORNER_REFINE_APRILTAG 
Python: cv.aruco.CORNER_REFINE_APRILTAG

基于AprilTag 2方法的标签和角检测 [291].

◆ 预定义字典类型

包含头文件 <opencv2/objdetect/aruco_dictionary.hpp>

预定义的标记字典/集。

每个字典表示包含的位数和标记数。

  • DICT_ARUCO_ORIGINAL: 标准ArUco库标记。1024个标记,5x5位,最小距离为0
枚举值
DICT_4X4_50 
Python: cv.aruco.DICT_4X4_50

4x4位,任意两个代码之间的最小汉明距离 = 4,50个代码

DICT_4X4_100 
Python: cv.aruco.DICT_4X4_100

4x4位,任意两个代码之间的最小汉明距离 = 3,100个代码

DICT_4X4_250 
Python: cv.aruco.DICT_4X4_250

4x4位,任意两个代码之间的最小汉明距离 = 3,250个代码

DICT_4X4_1000 
Python: cv.aruco.DICT_4X4_1000

4x4位,任意两个代码之间的最小汉明距离 = 2,1000个代码

DICT_5X5_50 
Python: cv.aruco.DICT_5X5_50

5x5位,任意两个代码之间的最小汉明距离 = 8,50个代码

DICT_5X5_100 
Python: cv.aruco.DICT_5X5_100

5x5位,任意两个代码之间的最小汉明距离 = 7,100个代码

DICT_5X5_250 
Python: cv.aruco.DICT_5X5_250

5x5位,任意两个代码之间的最小汉明距离 = 6,250个代码

DICT_5X5_1000 
Python: cv.aruco.DICT_5X5_1000

5x5位,任意两个代码之间的最小汉明距离 = 5,1000个代码

DICT_6X6_50 
Python: cv.aruco.DICT_6X6_50

6x6位,任意两个代码之间的最小汉明距离 = 13,50个代码

DICT_6X6_100 
Python: cv.aruco.DICT_6X6_100

6x6位,任意两个代码之间的最小汉明距离 = 12,100个代码

字典_6X6_250 
Python: cv.aruco.DICT_6X6_250

6x6位,任何两个代码之间的最小汉明距离=11,250个代码

字典_6X6_1000 
Python: cv.aruco.DICT_6X6_1000

6x6位,任何两个代码之间的最小汉明距离=9,1000个代码

字典_7X7_50 
Python: cv.aruco.DICT_7X7_50

7x7位,任何两个代码之间的最小汉明距离=19,50个代码

字典_7X7_100 
Python: cv.aruco.DICT_7X7_100

7x7位,任何两个代码之间的最小汉明距离=18,100个代码

字典_7X7_250 
Python: cv.aruco.DICT_7X7_250

7x7位,任何两个代码之间的最小汉明距离=17,250个代码

字典_7X7_1000 
Python: cv.aruco.DICT_7X7_1000

7x7位,任何两个代码之间的最小汉明距离=14,1000个代码

字典_ARUCO_ORIGINAL 
Python: cv.aruco.DICT_ARUCO_ORIGINAL

6x6位,任何两个代码之间的最小汉明距离=3,1024个代码

字典_APRILTAG_16h5 
Python: cv.aruco.DICT_APRILTAG_16h5

4x4位,任何两个代码之间的最小汉明距离=5,30个代码

字典_APRILTAG_25h9 
Python: cv.aruco.DICT_APRILTAG_25h9

5x5位,任何两个代码之间的最小汉明距离=9,35个代码

字典_APRILTAG_36h10 
Python: cv.aruco.DICT_APRILTAG_36h10

6x6位,任何两个代码之间的最小汉明距离=10,2320个代码

字典_APRILTAG_36h11 
Python: cv.aruco.DICT_APRILTAG_36h11

6x6位,任何两个代码之间的最小汉明距离=11,587个代码

字典_ARUCO_MIP_36h12 
Python: cv.aruco.DICT_ARUCO_MIP_36h12

6x6位,任何两个代码之间的最小汉明距离=12,250个代码

函数文档

◆ drawDetectedCornersCharuco()

void cv::aruco::drawDetectedCornersCharuco ( InputOutputArray  image,
InputArray  charucoCorners,
InputArray  charucoIds = noArray(),
Scalar  cornerColor = Scalar(255, 0, 0) 
)
Python
cv.aruco.drawDetectedCornersCharuco(image, charucoCorners[, charucoIds[, cornerColor]]) -> image

#include <opencv2/objdetect/charuco_detector.hpp>

绘制一组Charuco角。

参数
image输入/输出图像。它必须具有1或3个通道。通道数量不会改变。
charucoCorners检测到的charuco角向量
charucoIdscharucoCorners中的每个角的标识符列表
cornerColor围绕每个角的正方形颜色

此函数绘制检测到的Charuco角集合。如果提供了标识符向量,则还绘制每个角的id。

◆ 绘制检测到的菱形()

void cv::aruco::drawDetectedDiamonds ( InputOutputArray  image,
输入数组数组  菱形角点,
InputArray  菱形ID = 无数组(),
Scalar  边框颜色 = 标量(0, 0, 255) 
)
Python
cv.aruco.drawDetectedDiamonds(图像, 菱形角点[, 菱形ID[, 边框颜色]]) -> image

#include <opencv2/objdetect/charuco_detector.hpp>

在图像中绘制检测到的Diamond标记。

参数
image输入/输出图像。它必须具有1或3个通道。通道数量不会改变。
菱形角点菱形角点的位置,格式相同于detectCharucoDiamond()返回的格式。例如,std::vector > 。对于检测到的N个标记,此数组的维度应为Nx4。顶点的顺序应为顺时针。
菱形ID在菱形角点中的菱形ID向量,格式与detectCharucoDiamond()返回的格式相同(例如,std::vector)。可选,如果未提供,则不绘制id。
边框颜色标记边框的颜色。其他颜色(文字颜色和第一个角点颜色)基于此颜色计算。

给定一个检测到的菱形数组,这个函数将在图像中绘制它们。标记边框将被上色,如果提供的话,标记ID也会被绘制。这对于调试非常有用。

◆ 绘制检测到的标记()

void cv::aruco::drawDetectedMarkers ( InputOutputArray  image,
输入数组数组  角点,
InputArray  id = 无数组(),
Scalar  边框颜色 = 标量(0, 255, 0) 
)
Python
cv.aruco.drawDetectedMarkers(图像, 角点[, id[, 边框颜色]]) -> image

包含头文件 <opencv2/objdetect/aruco_detector.hpp>

在图像中绘制检测到的标记。

参数
image输入/输出图像。它必须具有1或3个通道。通道数量不会改变。
角点输入图像中标记角点的位置。(例如,std::vector >)。对于检测到的N个标记,此数组的维度应为Nx4。顶点的顺序应为顺时针。
ids标记角点中的标记ID向量。可选,如果未提供,则不绘制ID。
边框颜色标记边框的颜色。其他颜色(文字颜色和第一个角点颜色)基于此颜色计算,以提高可视化。

给定一组检测到的标记角点和对应的ID,此函数将在图像中绘制标记。标记边框将被上色,如果提供的话,标记ID也会被绘制。这对于调试非常有用。

◆ 扩展字典()

字典 cv::aruco::extendDictionary ( int  标记数,
int  标记大小,
const Dictionary 基本字典 = Dictionary(),
int  随机种子 = 0 
)
Python
cv.aruco.extendDictionary(标记数, 标记大小[, 基本字典[, 随机种子]]) -> retval

包含头文件 <opencv2/objdetect/aruco_dictionary.hpp>

通过新的nMarkers扩展基本字典。

参数
标记数词典中的标记数量
标记大小每个标记的每个维度的位数
基本字典在此字典的开始处包含标记(可选)
随机种子提供给theRNG()的用户种子

此函数创建一个新的字典,由nMarkers个标记组成,每个标记由markerSize x markerSize位组成。如果提供了基本字典,则直接包含其标记,其余的根据它们生成。如果基本字典的大小大于nMarkers,则仅取基本字典中的前nMarkers,不添加新的标记。

◆ 生成图像标记()

void cv::aruco::generateImageMarker ( const Dictionary 词典,
int  标识符,
int  边像素,
OutputArray  img,
int  borderBits = 1 
)
Python
cv.aruco.generateImageMarker(dictionary, id, sidePixels[, img[, borderBits]]) -> img

包含头文件 <opencv2/objdetect/aruco_detector.hpp>

生成一个标准标记图像。

参数
词典标记类型的词典
标识符将返回的标记的标识符。它必须是在指定词典中的有效标识符。
边像素图像的像素尺寸
img带有标记的输出图像
borderBits标记边框的宽度

此函数以规范形式返回标记图像(即,打印就绪)

◆ getPredefinedDictionary() [1/2]

Dictionary cv::aruco::getPredefinedDictionary ( int  dict)
Python
cv.aruco.getPredefinedDictionary(dict) -> retval

包含头文件 <opencv2/objdetect/aruco_dictionary.hpp>

返回由DICT_*引用的预定义字典之一。

◆ getPredefinedDictionary() [2/2]

Dictionary cv::aruco::getPredefinedDictionary ( PredefinedDictionaryType  名称)
Python
cv.aruco.getPredefinedDictionary(dict) -> retval

包含头文件 <opencv2/objdetect/aruco_dictionary.hpp>

返回在PredefinedDictionaryType中定义的预定义字典之一。