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 |
| | 基本标记检测。
|
| |
| 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 object> |
| cv.aruco.ArucoDetector( | dictionaries[, detectorParams[, refineParams]] | ) -> | <aruco_ArucoDetector object> |
基本 ArucoDetector 构造函数。
- 参数
-
| dictionary | 指示将要搜索的标记类型 |
| detectorParams | 标记检测参数 |
| refineParams | 标记精炼检测参数 |
◆ ArucoDetector() [2/2]
| Python |
|---|
| cv.aruco.ArucoDetector( | [, dictionary[, detectorParams[, refineParams]]] | ) -> | <aruco_ArucoDetector object> |
| cv.aruco.ArucoDetector( | dictionaries[, detectorParams[, refineParams]] | ) -> | <aruco_ArucoDetector object> |
用于多个字典的 ArucoDetector 构造函数。
- 参数
-
| dictionaries | 指示将要搜索的标记类型。空字典将抛出错误。 |
| detectorParams | 标记检测参数 |
| refineParams | 标记精炼检测参数 |
◆ detectMarkers()
| Python |
|---|
| cv.aruco.ArucoDetector.detectMarkers( | image[, corners[, ids[, rejectedImgPoints]]] | ) -> | corners, ids, rejectedImgPoints |
基本标记检测。
- 参数
-
| image | 输入图像 |
| 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 |
基本标记检测。
- 参数
-
| image | 输入图像 |
| 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
◆ 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 | ) -> | 无 |
◆ refineDetectedMarkers()
| Python |
|---|
| cv.aruco.ArucoDetector.refineDetectedMarkers( | image, board, detectedCorners, detectedIds, rejectedCorners[, cameraMatrix[, distCoeffs[, recoveredIdxs]]] | ) -> | detectedCorners, detectedIds, rejectedCorners, recoveredIdxs |
根据已检测到的标记和板布局优化未检测到的标记。
- 参数
-
| image | 输入图像 |
| 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 数组中恢复的候选索引。 |
此函数尝试查找在基本 detectMarkers 函数中未检测到的标记。首先,根据当前检测到的标记和板布局,函数插值缺失标记的位置。然后,它尝试基于 minRepDistance 和 errorCorrectionRate 参数在重新投影的标记和被拒绝的候选对象之间找到对应关系。如果提供了相机参数和畸变系数,则使用 projectPoint 函数重新投影缺失的标记。否则,使用全局单应性插值缺失的标记投影,并且板中所有标记角点必须具有相同的 Z 坐标。
- 注意
- 此函数假定板只包含来自一个字典的标记,因此只使用第一个配置的字典。它必须与板的字典匹配才能正常工作。
◆ setDetectorParameters()
| void cv::aruco::ArucoDetector::setDetectorParameters |
( |
const DetectorParameters & | detectorParameters | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDetectorParameters( | detectorParameters | ) -> | 无 |
◆ setDictionaries()
| void cv::aruco::ArucoDetector::setDictionaries |
( |
const std::vector< Dictionary > & | dictionaries | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDictionaries( | dictionaries | ) -> | 无 |
设置用于标记检测的整个字典集合,替换任何现有字典。
- 参数
-
| dictionaries | 包含要使用的新字典集合的 std::vector<Dictionary>。 |
配置 ArucoDetector 使用提供的字典向量进行标记检测。此方法会替换之前设置的任何字典。
- 注意
- 设置空字典向量将抛出错误。
◆ setDictionary()
| void cv::aruco::ArucoDetector::setDictionary |
( |
const Dictionary & | dictionary | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setDictionary( | dictionary | ) -> | 无 |
设置并替换内部列表中用于标记检测的第一个字典。
- 参数
-
| dictionary | 将替换内部列表中第一个字典的新字典。 |
◆ setRefineParameters()
| void cv::aruco::ArucoDetector::setRefineParameters |
( |
const RefineParameters & | refineParameters | ) |
|
| Python |
|---|
| cv.aruco.ArucoDetector.setRefineParameters( | refineParameters | ) -> | 无 |
◆ write() [1/2]
| virtual void cv::aruco::ArucoDetector::write |
( |
FileStorage & | fs | ) |
const |
|
overridevirtual |
| Python |
|---|
| cv.aruco.ArucoDetector.write( | fs, name | ) -> | 无 |
◆ write() [2/2]
| Python |
|---|
| cv.aruco.ArucoDetector.write( | fs, name | ) -> | 无 |
◆ arucoDetectorImpl
| Ptr<ArucoDetectorImpl> cv::aruco::ArucoDetector::arucoDetectorImpl |
|
保护 |
此类的文档由以下文件生成