OpenCV 4.10.0
开源计算机视觉
|
结构体 DetectorParameters 由 ArucoDetector 使用 更多...
#include <opencv2/objdetect/aruco_detector.hpp>
公共成员函数 | |
DetectorParameters () | |
bool | readDetectorParameters (const FileNode &fn) |
从 FileNode 读取一组新的 DetectorParameters(使用 FileStorage.root())。 | |
bool | writeDetectorParameters (FileStorage &fs, const String &name=String()) |
将一组 DetectorParameters 写入 FileStorage。 | |
公共属性 | |
double | adaptiveThreshConstant |
在查找轮廓之前进行自适应阈值处理的常数(默认值为 7) | |
int | adaptiveThreshWinSizeMax |
在查找轮廓之前进行自适应阈值处理的最大窗口大小(默认值为 23)。 | |
int | adaptiveThreshWinSizeMin |
在查找轮廓之前进行自适应阈值处理的最小窗口大小(默认值为 3)。 | |
int | adaptiveThreshWinSizeStep |
阈值处理期间从 adaptiveThreshWinSizeMin 到 adaptiveThreshWinSizeMax 的增量(默认值为 10)。 | |
float | aprilTagCriticalRad |
拒绝边缘对的角度接近直线或接近 180 度的四边形。 | |
int | aprilTagDeglitch |
是否应该对阈值化图像进行去毛刺?仅对非常嘈杂的图像有用(默认值为 0)。 | |
float | aprilTagMaxLineFitMse |
将直线拟合到轮廓时,最大均方误差是多少 | |
int | aprilTagMaxNmaxima |
在将一组像素分割成四边形时,要考虑多少个角点候选者(默认值为 10)。 | |
int | aprilTagMinClusterPixels |
拒绝包含像素过少的四边形(默认值为 5)。 | |
int | aprilTagMinWhiteBlackDiff |
添加额外的检查,即白色模型必须(总体上)比黑色模型更亮。 | |
float | aprilTagQuadDecimate |
April :: 用户可配置参数。 | |
float | aprilTagQuadSigma |
应该对分割后的图像应用什么高斯模糊(用于四边形检测?) | |
int | cornerRefinementMaxIterations |
角点细化过程的停止准则的最大迭代次数(默认值为 30)。 | |
int | cornerRefinementMethod |
默认值为 CORNER_REFINE_NONE | |
double | cornerRefinementMinAccuracy |
角点细化过程的停止准则的最小误差(默认值为:0.1) | |
int | cornerRefinementWinSize |
角点细化过程的最大窗口大小(以像素为单位)(默认值为 5)。 | |
bool | detectInvertedMarker |
检查是否有白色标记。 | |
double | errorCorrectionRate |
相对于每个字典的最大错误校正能力的错误校正率(默认值为 0.6)。 | |
int | markerBorderBits |
标记边框的位数,即标记边框宽度(默认值为 1)。 | |
double | maxErroneousBitsInBorderRate |
边框中允许的最大错误位数(即允许的边框中的白色位数)。 | |
double | maxMarkerPerimeterRate |
确定要检测的标记轮廓的最大周长。 | |
double | minCornerDistanceRate |
检测到的标记的角点之间的最小距离,相对于其周长(默认值为 0.05) | |
int | minDistanceToBorder |
检测到的标记的任何角点到图像边框的最小距离(以像素为单位)(默认值为 3) | |
float | minGroupDistance = 0.21f |
组中两个标记角点之间的最小平均距离,将其添加到候选者列表中 | |
double | minMarkerDistanceRate |
要分组的两个标记的角点之间的最小平均距离(默认值为 0.125)。 | |
float | minMarkerLengthRatioOriginalImg |
范围 [0,1],等效于论文中的(2)。参数 tau_i 对处理速度有直接影响。 | |
double | minMarkerPerimeterRate |
确定要检测的标记轮廓的最小周长。 | |
double | minOtsuStdDev |
解码步骤中像素值期间的最小标准差,以应用 Otsu 阈值处理(否则,所有位都设置为 0 或 1,具体取决于均值是否大于 128 或小于 128)(默认值为 5.0) | |
int | minSideLengthCanonicalImg |
规范图像中标记的最小边长。后者是在其中搜索轮廓的二值化图像。 | |
double | perspectiveRemoveIgnoredMarginPerCell |
每个单元格中未考虑用于确定单元格位的像素边距的宽度。 | |
int | perspectiveRemovePixelPerCell |
移除透视时每个标记单元格的每个维度上的位数(默认值为 4)。 | |
double | polygonalApproxAccuracyRate |
确定哪些轮廓是正方形的多边形逼近过程中的最小精度。(默认值为 0.03) | |
float | relativeCornerRefinmentWinSize |
相对于 ArUco 模块大小的角点细化动态窗口大小(默认值为 0.3)。 | |
bool | useAruco3Detection |
启用新的、更快的 ArUco 检测策略。 | |
结构体 DetectorParameters 由 ArucoDetector 使用
|
inline |
bool cv::aruco::DetectorParameters::readDetectorParameters | ( | const FileNode & | fn | ) |
从 FileNode 读取一组新的 DetectorParameters(使用 FileStorage.root())。
bool cv::aruco::DetectorParameters::writeDetectorParameters | ( | FileStorage & | fs, |
const String & | name = String() |
||
) |
将一组 DetectorParameters 写入 FileStorage。
double cv::aruco::DetectorParameters::adaptiveThreshConstant |
在查找轮廓之前进行自适应阈值处理的常数(默认值为 7)
int cv::aruco::DetectorParameters::adaptiveThreshWinSizeMax |
在查找轮廓之前进行自适应阈值处理的最大窗口大小(默认值为 23)。
int cv::aruco::DetectorParameters::adaptiveThreshWinSizeMin |
在查找轮廓之前进行自适应阈值处理的最小窗口大小(默认值为 3)。
int cv::aruco::DetectorParameters::adaptiveThreshWinSizeStep |
阈值处理期间从 adaptiveThreshWinSizeMin 到 adaptiveThreshWinSizeMax 的增量(默认值为 10)。
float cv::aruco::DetectorParameters::aprilTagCriticalRad |
拒绝边缘对的角度接近直线或接近 180 度的四边形。
零表示不拒绝任何四边形。(以弧度为单位)(默认值为 10*PI/180)
int cv::aruco::DetectorParameters::aprilTagDeglitch |
是否应该对阈值化图像进行去毛刺?仅对非常嘈杂的图像有用(默认值为 0)。
float cv::aruco::DetectorParameters::aprilTagMaxLineFitMse |
将直线拟合到轮廓时,最大均方误差是多少
int cv::aruco::DetectorParameters::aprilTagMaxNmaxima |
在将一组像素分割成四边形时,要考虑多少个角点候选者(默认值为 10)。
int cv::aruco::DetectorParameters::aprilTagMinClusterPixels |
拒绝包含像素过少的四边形(默认值为 5)。
int cv::aruco::DetectorParameters::aprilTagMinWhiteBlackDiff |
添加额外的检查,即白色模型必须(总体上)比黑色模型更亮。
当我们构建黑白像素模型时,我们添加额外的检查,即白色模型必须(总体上)比黑色模型更亮。有多亮?(以像素值为单位,[0,255]),(默认值为 5)
float cv::aruco::DetectorParameters::aprilTagQuadDecimate |
April :: 用户可配置参数。
可以在较低分辨率的图像上进行四边形检测,提高速度,但会以姿态精度为代价,并略微降低检测率。解码二进制有效载荷仍然
float cv::aruco::DetectorParameters::aprilTagQuadSigma |
应该对分割后的图像应用什么高斯模糊(用于四边形检测?)
int cv::aruco::DetectorParameters::cornerRefinementMaxIterations |
角点细化过程的停止准则的最大迭代次数(默认值为 30)。
int cv::aruco::DetectorParameters::cornerRefinementMethod |
默认值为 CORNER_REFINE_NONE
double cv::aruco::DetectorParameters::cornerRefinementMinAccuracy |
角点细化过程的停止准则的最小误差(默认值为:0.1)
int cv::aruco::DetectorParameters::cornerRefinementWinSize |
角点细化过程的最大窗口大小(以像素为单位)(默认值为 5)。
如果 ArUco 标记太小,窗口大小可能会减小,请检查 relativeCornerRefinmentWinSize。最终窗口大小的计算公式为:min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize),其中 averageArucoModuleSize 是 ArUco 标记的平均模块大小(以像素为单位)(ArUco 标记由黑色和白色模块组成)
bool cv::aruco::DetectorParameters::detectInvertedMarker |
检查是否有白色标记。
为了生成“白色”标记,只需使用波浪号 ~markerImage 反转普通标记。(默认值为 false)
double cv::aruco::DetectorParameters::errorCorrectionRate |
相对于每个字典的最大错误校正能力的错误校正率(默认值为 0.6)。
int cv::aruco::DetectorParameters::markerBorderBits |
标记边框的位数,即标记边框宽度(默认值为 1)。
double cv::aruco::DetectorParameters::maxErroneousBitsInBorderRate |
边框中允许的最大错误位数(即允许的边框中的白色位数)。
表示为相对于每个标记的总位数的比率(默认值为 0.35)。
double cv::aruco::DetectorParameters::maxMarkerPerimeterRate |
确定要检测的标记轮廓的最大周长。
这被定义为相对于输入图像的最大尺寸的比率(默认值为 4.0)。
double cv::aruco::DetectorParameters::minCornerDistanceRate |
检测到的标记的角点之间的最小距离,相对于其周长(默认值为 0.05)
int cv::aruco::DetectorParameters::minDistanceToBorder |
检测到的标记的任何角点到图像边框的最小距离(以像素为单位)(默认值为 3)
float cv::aruco::DetectorParameters::minGroupDistance = 0.21f |
组中两个标记角点之间的最小平均距离,将其添加到候选者列表中
相对于其模块大小计算的两个标记的角点之间的平均距离(默认值为 0.21)。
double cv::aruco::DetectorParameters::minMarkerDistanceRate |
要分组的两个标记的角点之间的最小平均距离(默认值为 0.125)。
该比率相对于两个标记中较小的周长。如果两个标记的角点之间的平均距离小于 min(MarkerPerimeter1, MarkerPerimeter2)*minMarkerDistanceRate,则将两个标记归为一组。
默认值为 0.125,因为 0.125*MarkerPerimeter = (MarkerPerimeter / 4) * 0.5 = 标记的一半边长。
float cv::aruco::DetectorParameters::minMarkerLengthRatioOriginalImg |
范围 [0,1],等效于论文中的(2)。参数 tau_i 对处理速度有直接影响。
double cv::aruco::DetectorParameters::minMarkerPerimeterRate |
确定要检测的标记轮廓的最小周长。
它被定义为相对于输入图像最大尺寸的比率(默认值为 0.03)。
double cv::aruco::DetectorParameters::minOtsuStdDev |
解码步骤中像素值期间的最小标准差,以应用 Otsu 阈值处理(否则,所有位都设置为 0 或 1,具体取决于均值是否大于 128 或小于 128)(默认值为 5.0)
int cv::aruco::DetectorParameters::minSideLengthCanonicalImg |
规范图像中标记的最小边长。后者是在其中搜索轮廓的二值化图像。
double cv::aruco::DetectorParameters::perspectiveRemoveIgnoredMarginPerCell |
每个单元格中未考虑用于确定单元格位的像素边距的宽度。
它表示相对于单元格总大小的比率,即 perspectiveRemovePixelPerCell(默认值为 0.13)。
int cv::aruco::DetectorParameters::perspectiveRemovePixelPerCell |
移除透视时每个标记单元格的每个维度上的位数(默认值为 4)。
double cv::aruco::DetectorParameters::polygonalApproxAccuracyRate |
确定哪些轮廓是正方形的多边形逼近过程中的最小精度。(默认值为 0.03)
float cv::aruco::DetectorParameters::relativeCornerRefinmentWinSize |
相对于 ArUco 模块大小的角点细化动态窗口大小(默认值为 0.3)。
最终窗口大小计算如下:min(cornerRefinementWinSize, averageArucoModuleSize*relativeCornerRefinmentWinSize),其中 averageArucoModuleSize 是 ArUco 标记中模块的平均大小(以像素为单位)。(ArUco 标记由黑色和白色模块组成)如果标记彼此相距较远,则将参数值增加到 0.4-0.5 可能会有用。如果标记彼此靠近,则将参数值降低到 0.1-0.2 可能会有用。
bool cv::aruco::DetectorParameters::useAruco3Detection |
启用新的、更快的 ArUco 检测策略。
在论文中提出:Romero-Ramirez 等:Speeded up detection of squared fiducial markers (2018) https://www.researchgate.net/publication/325787310_Speeded_Up_Detection_of_Squared_Fiducial_Markers