ArucoDetector 类主要功能是通过 detectMarkers() 方法检测图像中的标记。 更多...
#include <opencv2/objdetect/aruco_detector.hpp>
|
| | ArucoDetector (const Dictionary &dictionary=getPredefinedDictionary(cv::aruco::DICT_4X4_50), const DetectorParameters &detectorParams=DetectorParameters(), const RefineParameters &refineParams=RefineParameters()) |
| | 基本的 ArucoDetector 构造函数。
|
| |
| | ArucoDetector (const std::vector< Dictionary > &dictionaries, const DetectorParameters &detectorParams=DetectorParameters(), const RefineParameters &refineParams=RefineParameters()) |
| | 用于多个字典的 ArucoDetector 构造函数。
|
| |
| void | detectMarkers (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArrayOfArrays rejectedImgPoints=noArray()) const |
| | 基本标记检测。
|
| |
| void | detectMarkersMultiDict (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArrayOfArrays rejectedImgPoints=noArray(), OutputArray dictIndices=noArray()) const |
| | 基本标记检测。
|
| |
| void | detectMarkersWithConfidence (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArray markersConfidence, OutputArrayOfArrays rejectedImgPoints=noArray()) const |
| | 带有置信度计算的标记检测。
|
| |
| const DetectorParameters & | getDetectorParameters () const |
| |
| std::vector< Dictionary > | getDictionaries () const |
| | 返回当前用于标记检测的所有字典作为向量。
|
| |
| const Dictionary & | getDictionary () const |
| | 返回用于标记检测的内部列表中的第一个字典。
|
| |
| const RefineParameters & | getRefineParameters () const |
| |
| virtual void | read (const FileNode &fn) override |
| | 从文件存储中读取算法参数。
|
| |
| void | refineDetectedMarkers (InputArray image, const Board &board, InputOutputArrayOfArrays detectedCorners, InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), OutputArray recoveredIdxs=noArray()) const |
| | 基于已检测到的标记和板布局,优化未检测到的标记。
|
| |
| void | setDetectorParameters (const DetectorParameters &detectorParameters) |
| |
| void | setDictionaries (const std::vector< Dictionary > &dictionaries) |
| | 设置将用于标记检测的整个字典集合,替换任何现有的字典。
|
| |
| void | setDictionary (const Dictionary &dictionary) |
| | 设置并替换内部列表中用于标记检测的第一个字典。
|
| |
| void | setRefineParameters (const RefineParameters &refineParameters) |
| |
| virtual void | write (FileStorage &fs) const override |
| | 将算法参数存储在文件存储中。
|
| |
| void | write (FileStorage &fs, const String &name) |
| | 简化 API 用于语言绑定
|
| |
| | Algorithm () |
| |
| virtual | ~Algorithm () |
| |
| virtual void | clear () |
| | 清除算法状态。
|
| |
| virtual bool | empty () const |
| | 如果 Algorithm 为空(例如,在最开始或读取不成功后),则返回 true。
|
| |
| virtual String | getDefaultName () const |
| |
| virtual void | save (const String &filename) const |
| |
| void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
| |
| void | write (FileStorage &fs, const String &name) const |
| |
◆ ArucoDetector() [1/2]
| Python |
|---|
| cv.aruco.ArucoDetector( | [, dictionary[, detectorParams[, refineParams]]] | ) -> | 〈aruco_ArucoDetector 对象〉 |
| cv.aruco.ArucoDetector( | dictionaries[, detectorParams[, refineParams]] | ) -> | 〈aruco_ArucoDetector 对象〉 |
基本的 ArucoDetector 构造函数。
- 参数
-
| 字典 | 指示将被搜索的标记类型 |
| detectorParams | 标记检测参数 |
| refineParams | 标记优化检测参数 |
◆ ArucoDetector() [2/2]
| Python |
|---|
| cv.aruco.ArucoDetector( | [, dictionary[, detectorParams[, refineParams]]] | ) -> | 〈aruco_ArucoDetector 对象〉 |
| cv.aruco.ArucoDetector( | dictionaries[, detectorParams[, refineParams]] | ) -> | 〈aruco_ArucoDetector 对象〉 |
用于多个字典的 ArucoDetector 构造函数。
- 参数
-
| dictionaries | 指示将被搜索的标记类型。空的字典将引发错误。 |
| detectorParams | 标记检测参数 |
| refineParams | 标记优化检测参数 |
◆ detectMarkers()
| Python |
|---|
| cv.aruco.ArucoDetector.detectMarkers( | image[, corners[, ids[, rejectedImgPoints]]] | ) -> | corners, ids, rejectedImgPoints |
基本标记检测。
- 参数
-
| 图像 | 输入图像 |
| corners | 检测到的标记角点向量。对于每个标记,提供其四个角点(例如 std::vector<std::vector<cv::Point2f> > )。对于 N 个检测到的标记,该数组的尺寸为 Nx4。角点的顺序是顺时针的。 |
| ids | 检测到的标记的标识符向量。标识符类型为 int(例如 std::vector<int>)。对于 N 个检测到的标记,ids 的大小也是 N。标识符与 imgPoints 数组中的标记顺序相同。 |
| rejectedImgPoints | 包含那些内部编码未正确编码的方块的 imgPoints。用于调试目的。 |
在输入图像中执行标记检测。仅搜索第一个指定字典中包含的标记。对于每个检测到的标记,返回其在图像中的角点 2D 位置及其对应的标识符。请注意,此函数不执行姿态估计。
- 注意
- 该函数不纠正镜头畸变或考虑它。如果已知相机参数,建议使用相应的相机模型对输入图像进行去畸变。
- 另请参阅
- undistort, estimatePoseSingleMarkers, estimatePoseBoard
◆ detectMarkersMultiDict()
| Python |
|---|
| cv.aruco.ArucoDetector.detectMarkersMultiDict( | image[, corners[, ids[, rejectedImgPoints[, dictIndices]]]] | ) -> | corners, ids, rejectedImgPoints, dictIndices |
基本标记检测。
- 参数
-
| 图像 | 输入图像 |
| corners | 检测到的标记角点向量。对于每个标记,提供其四个角点(例如 std::vector<std::vector<cv::Point2f> > )。对于 N 个检测到的标记,该数组的尺寸为 Nx4。角点的顺序是顺时针的。 |
| ids | 检测到的标记的标识符向量。标识符类型为 int(例如 std::vector<int>)。对于 N 个检测到的标记,ids 的大小也是 N。标识符与 imgPoints 数组中的标记顺序相同。 |
| rejectedImgPoints | 包含那些内部编码未正确编码的方块的 imgPoints。用于调试目的。 |
| dictIndices | 每个检测到的标记的字典索引向量。使用 getDictionaries() 获取对应字典的列表。 |
在输入图像中执行标记检测。仅搜索特定字典中包含的标记。对于每个检测到的标记,返回其在图像中的角点 2D 位置及其对应的标识符。请注意,此函数不执行姿态估计。
- 注意
- 该函数不纠正镜头畸变或考虑它。如果已知相机参数,建议使用相应的相机模型对输入图像进行去畸变。
- 另请参阅
- undistort, estimatePoseSingleMarkers, estimatePoseBoard
◆ detectMarkersWithConfidence()
| Python |
|---|
| cv.aruco.ArucoDetector.detectMarkersWithConfidence( | image[, corners[, ids[, markersConfidence[, rejectedImgPoints]]]] | ) -> | corners, ids, markersConfidence, rejectedImgPoints |
带有置信度计算的标记检测。
- 参数
-
| 图像 | 输入图像 |
| corners | 检测到的标记角点向量。对于每个标记,提供其四个角点(例如 std::vector<std::vector<cv::Point2f> > )。对于 N 个检测到的标记,该数组的尺寸为 Nx4。角点的顺序是顺时针的。 |
| ids | 检测到的标记的标识符向量。标识符类型为 int(例如 std::vector<int>)。对于 N 个检测到的标记,ids 的大小也是 N。标识符与 imgPoints 数组中的标记顺序相同。 |
| markersConfidence | 包含标记检测的归一化置信度 [0;1],定义为 1 减去归一化不确定度(像素检测错误百分比),1 表示像素完美检测。置信度值为 float 类型(例如 std::vector<float>)。 |
| rejectedImgPoints | 包含那些内部编码未正确编码的方块的 imgPoints。用于调试目的。 |
在输入图像中执行标记检测。仅搜索第一个指定字典中包含的标记。对于每个检测到的标记,返回其在图像中的角点 2D 位置及其对应的标识符。请注意,此函数不执行姿态估计。
- 注意
- 该函数不纠正镜头畸变或考虑它。如果已知相机参数,建议使用相应的相机模型对输入图像进行去畸变。
- 另请参阅
- undistort, estimatePoseSingleMarkers, estimatePoseBoard
◆ getDetectorParameters()
| Python |
|---|
| cv.aruco.ArucoDetector.getDetectorParameters( | | ) -> | retval |
◆ getDictionaries()
| std::vector< Dictionary > cv::aruco::ArucoDetector::getDictionaries |
( |
| ) |
const |
| Python |
|---|
| cv.aruco.ArucoDetector.getDictionaries( | | ) -> | retval |
返回当前用于标记检测的所有字典作为向量。
- 返回
- 一个 ArucoDetector 使用的所有字典的 std::vector<Dictionary>。
◆ getDictionary()
| const Dictionary & cv::aruco::ArucoDetector::getDictionary |
( |
| ) |
const |
| Python |
|---|
| cv.aruco.ArucoDetector.getDictionary( | | ) -> | retval |
◆ getRefineParameters()
| const RefineParameters & cv::aruco::ArucoDetector::getRefineParameters |
( |
| ) |
const |
| Python |
|---|
| cv.aruco.ArucoDetector.getRefineParameters( | | ) -> | retval |
◆ read()
| virtual void cv::aruco::ArucoDetector::read |
( |
const FileNode & | fn | ) |
|
|
overridevirtual |
| Python |
|---|
| cv.aruco.ArucoDetector.read( | fn | ) -> | None |
◆ refineDetectedMarkers()
| Python |
|---|
| cv.aruco.ArucoDetector.refineDetectedMarkers( | image, board, detectedCorners, detectedIds, rejectedCorners[, cameraMatrix[, distCoeffs[, recoveredIdxs]]] | ) -> | detectedCorners, detectedIds, rejectedCorners, recoveredIdxs |
基于已检测到的标记和板布局,优化未检测到的标记。
- 参数
-
| 图像 | 输入图像 |
| board | 标记在板上的布局。 |
| detectedCorners | 已检测到的标记角点向量。 |
| detectedIds | 已检测到的标记标识符向量。 |
| rejectedCorners | 标记检测过程中被拒绝的候选点向量。 |
| cameraMatrix | 可选的 3x3 浮点相机矩阵 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) |
| distCoeffs | 可选的畸变系数向量 \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) 包含 4、5、8 或 12 个元素 |
| recoveredIdxs | 可选数组,用于返回原始 rejectedCorners 数组中已恢复的候选点的索引。 |
此函数尝试查找在 basic detecMarkers 函数中未检测到的标记。首先,基于当前检测到的标记和板布局,函数插值缺失标记的位置。然后,它尝试根据 minRepDistance 和 errorCorrectionRate 参数在重新投影的标记和被拒绝的候选点之间找到对应关系。如果提供了相机参数和畸变系数,则会使用 projectPoint 函数重新投影缺失的标记。如果未提供,则使用全局单应性插值缺失标记的投影,并且板上的所有标记角点必须具有相同的 Z 坐标。
- 注意
- 此函数假设板只包含一个字典中的标记,因此只使用第一个配置的字典。它必须与板的字典匹配才能正常工作。
◆ setDetectorParameters()
| void cv::aruco::ArucoDetector::setDetectorParameters |
( |
const DetectorParameters & | detectorParameters | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDetectorParameters( | detectorParameters | ) -> | None |
◆ setDictionaries()
| void cv::aruco::ArucoDetector::setDictionaries |
( |
const std::vector< Dictionary > & | dictionaries | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDictionaries( | dictionaries | ) -> | None |
设置将用于标记检测的整个字典集合,替换任何现有的字典。
- 参数
-
| dictionaries | 包含要使用的字典的新集合的 std::vector<Dictionary>。 |
将 ArucoDetector 配置为使用提供的字典向量进行标记检测。此方法将替换任何先前设置的字典。
- 注意
- 设置一个空的字典向量将引发错误。
◆ setDictionary()
| void cv::aruco::ArucoDetector::setDictionary |
( |
const Dictionary & | 字典 | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDictionary( | 字典 | ) -> | None |
设置并替换内部列表中用于标记检测的第一个字典。
- 参数
-
◆ setRefineParameters()
| void cv::aruco::ArucoDetector::setRefineParameters |
( |
const RefineParameters & | refineParameters | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setRefineParameters( | refineParameters | ) -> | None |
◆ write() [1/2]
| virtual void cv::aruco::ArucoDetector::write |
( |
FileStorage & | fs | ) |
const |
|
overridevirtual |
| Python |
|---|
| cv.aruco.ArucoDetector.write( | fs, name | ) -> | None |
◆ write() [2/2]
| Python |
|---|
| cv.aruco.ArucoDetector.write( | fs, name | ) -> | None |
◆ arucoDetectorImpl
| Ptr<ArucoDetectorImpl> cv::aruco::ArucoDetector::arucoDetectorImpl |
|
保护 |
该类的文档由以下文件生成: