OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配项
公共成员函数 | 受保护的属性 | 所有成员列表

ArucoDetector 类的主要功能是在图像中使用 detectMarkers() 方法检测标记。 更多...

#include <opencv2/objdetect/aruco_detector.hpp>

cv::aruco::ArucoDetector 的协作图

公共成员函数

 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 DetectorParametersgetDetectorParameters () const
 
const DictionarygetDictionary () const
 
const RefineParametersgetRefineParameters () 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
 
- 从 cv::Algorithm 继承的公共成员函数
 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
 

受保护的属性

Ptr< ArucoDetectorImpl > arucoDetectorImpl
 

其他继承的成员

- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 
- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

ArucoDetector 类的主要功能是在图像中使用 detectMarkers() 方法检测标记。

在检测到图像中的某些标记后,您可以尝试使用 refineDetectedMarkers() 方法从该字典中查找未检测到的标记。

另请参阅
DetectorParameters, RefineParameters

构造函数和析构函数文档

◆ ArucoDetector()

cv::aruco::ArucoDetector::ArucoDetector ( const Dictionary dictionary = getPredefinedDictionary(cv::aruco::DICT_4X4_50),
const DetectorParameters detectorParams = DetectorParameters(),
const RefineParameters refineParams = RefineParameters() 
)
Python
cv.aruco.ArucoDetector([, dictionary[, detectorParams[, refineParams]]]) -> <aruco_ArucoDetector 对象>

基本 ArucoDetector 构造函数。

参数
dictionary指示将要搜索的标记类型
detectorParams标记检测参数
refineParams标记细化检测参数
以下是此函数的调用图

成员函数文档

◆ detectMarkers()

void cv::aruco::ArucoDetector::detectMarkers ( InputArray  image,
OutputArrayOfArrays  corners,
OutputArray  ids,
OutputArrayOfArrays  rejectedImgPoints = noArray() 
) const
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()

const DetectorParameters & cv::aruco::ArucoDetector::getDetectorParameters ( ) const
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

从文件存储中读取算法参数。

Reimplemented from cv::Algorithm.

◆ refineDetectedMarkers()

void cv::aruco::ArucoDetector::refineDetectedMarkers ( InputArray  image,
const Board board,
InputOutputArrayOfArrays  detectedCorners,
InputOutputArray  detectedIds,
InputOutputArrayOfArrays  rejectedCorners,
InputArray  cameraMatrix = noArray(),
InputArray  distCoeffs = noArray(),
OutputArray  recoveredIdxs = noArray() 
) const
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

将算法参数存储在文件存储中。

Reimplemented from cv::Algorithm.

◆ write() [2/2]

void cv::aruco::ArucoDetector::write ( FileStorage fs,
const String name 
)
inline
Python
cv.aruco.ArucoDetector.write(fs, name) -> None

简化的语言绑定 API

成员数据文档

◆ arucoDetectorImpl

Ptr<ArucoDetectorImpl> cv::aruco::ArucoDetector::arucoDetectorImpl
protected

此类的文档从以下文件生成