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 构造函数。
|
|
void | detectMarkers (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArrayOfArrays rejectedImgPoints=noArray()) const |
| 基本标记检测。
|
|
const DetectorParameters & | getDetectorParameters () 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 | 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()
Python |
---|
| cv.aruco.ArucoDetector( | [, dictionary[, detectorParams[, refineParams]]] | ) -> | <aruco_ArucoDetector 对象> |
基本 ArucoDetector 构造函数。
- 参数
-
dictionary | 指示将要搜索的标记类型 |
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。 用于调试目的。 |
在输入图像中执行标记检测。 只搜索特定字典中包含的标记。 对于每个检测到的标记,它返回其角点在图像中的二维位置及其对应的标识符。 请注意,此函数不执行姿态估计。
- 注意
- 该函数不会校正镜头失真或考虑镜头失真。 如果已知相机参数,建议使用相应的相机模型对输入图像进行去畸变
- 另请参阅
- undistort, estimatePoseSingleMarkers, estimatePoseBoard
◆ getDetectorParameters()
Python |
---|
| cv.aruco.ArucoDetector.getDetectorParameters( | | ) -> | retval |
◆ 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 |
根据已检测到的标记和板布局,细化未检测到的标记。
- 参数
-
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 数组中恢复的候选者的索引。 |
此函数尝试查找在基本 detecMarkers 函数中未检测到的标记。 首先,根据当前检测到的标记和棋盘布局,函数会插值缺少的标记的位置。 然后,它尝试根据 minRepDistance 和 errorCorrectionRate 参数,在重新投影的标记与被拒绝的候选者之间找到对应关系。 如果提供了相机参数和畸变系数,则使用 projectPoint 函数重新投影缺少的标记。 如果没有,则使用全局单应性插值缺少的标记投影,并且棋盘中所有标记角点必须具有相同的 Z 坐标。
◆ setDetectorParameters()
void cv::aruco::ArucoDetector::setDetectorParameters |
( |
const DetectorParameters & |
detectorParameters | ) |
|
Python |
---|
| cv.aruco.ArucoDetector.setDetectorParameters( | detectorParameters | ) -> | None |
◆ setDictionary()
void cv::aruco::ArucoDetector::setDictionary |
( |
const Dictionary & |
dictionary | ) |
|
Python |
---|
| cv.aruco.ArucoDetector.setDictionary( | dictionary | ) -> | 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 |
|
protected |
此类的文档从以下文件生成