类 ArucoDetector
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.objdetect.ArucoDetector
-
public class ArucoDetector extends Algorithm
ArucoDetector 类的主要功能是使用 detectMarkers() 方法检测图像中的标记。在检测到图像中的一些标记后,您可以尝试使用 refineDetectedMarkers() 方法从该字典中查找未检测到的标记。参见:DetectorParameters、RefineParameters
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 ArucoDetector()
基本的 ArucoDetector 构造函数protected
ArucoDetector(long addr)
ArucoDetector(Dictionary dictionary)
基本的 ArucoDetector 构造函数ArucoDetector(Dictionary dictionary, DetectorParameters detectorParams)
基本的 ArucoDetector 构造函数ArucoDetector(Dictionary dictionary, DetectorParameters detectorParams, RefineParameters refineParams)
基本的 ArucoDetector 构造函数
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static ArucoDetector
__fromPtr__(long addr)
void
detectMarkers(Mat image, java.util.List<Mat> corners, Mat ids)
基本的标记检测void
detectMarkers(Mat image, java.util.List<Mat> corners, Mat ids, java.util.List<Mat> rejectedImgPoints)
基本的标记检测protected void
finalize()
DetectorParameters
getDetectorParameters()
Dictionary
getDictionary()
RefineParameters
getRefineParameters()
void
refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners)
基于已检测到的标记和棋盘布局细化未检测到的标记void
refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix)
基于已检测到的标记和棋盘布局细化未检测到的标记void
refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs)
基于已检测到的标记和棋盘布局细化未检测到的标记void
refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, Mat recoveredIdxs)
基于已检测到的标记和棋盘布局细化未检测到的标记void
setDetectorParameters(DetectorParameters detectorParameters)
void
setDictionary(Dictionary dictionary)
void
setRefineParameters(RefineParameters refineParameters)
-
从类 org.opencv.core.Algorithm 继承的方法
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
构造函数详情
-
ArucoDetector
protected ArucoDetector(long addr)
-
ArucoDetector
public ArucoDetector(Dictionary dictionary, DetectorParameters detectorParams, RefineParameters refineParams)
基本的 ArucoDetector 构造函数- 参数
dictionary
- 指示将搜索的标记类型detectorParams
- 标记检测参数refineParams
- 标记细化检测参数
-
ArucoDetector
public ArucoDetector(Dictionary dictionary, DetectorParameters detectorParams)
基本的 ArucoDetector 构造函数- 参数
dictionary
- 指示将搜索的标记类型detectorParams
- 标记检测参数
-
ArucoDetector
public ArucoDetector(Dictionary dictionary)
基本的 ArucoDetector 构造函数- 参数
dictionary
- 指示将搜索的标记类型
-
ArucoDetector
public ArucoDetector()
基本的 ArucoDetector 构造函数
-
-
方法详情
-
__fromPtr__
public static ArucoDetector __fromPtr__(long addr)
-
detectMarkers
public void detectMarkers(Mat image, java.util.List<Mat> corners, Mat ids, java.util.List<Mat> 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
-
detectMarkers
public void detectMarkers(Mat image, java.util.List<Mat> corners, Mat ids)
基本的标记检测- 参数
image
- 输入图像corners
- 检测到的标记角点的向量。对于每个标记,都提供其四个角点(例如 std::vector<std::vector<cv::Point2f> >)。对于 N 个检测到的标记,此数组的维度为 Nx4。角点的顺序为顺时针方向。ids
- 检测到的标记的标识符向量。标识符的类型为 int(例如 std::vector<int>)。对于 N 个检测到的标记,ids 的大小也是 N。标识符的顺序与 imgPoints 数组中的标记顺序相同。正确的编码。用于调试目的。在输入图像中执行标记检测。只搜索特定字典中包含的标记。对于每个检测到的标记,它返回其在图像中角点的二维位置及其对应的标识符。请注意,此函数不执行位姿估计。注意:此函数不校正镜头畸变或考虑镜头畸变。如果已知相机参数,建议使用相应的相机模型对输入图像进行去畸变处理,参见:undistort、estimatePoseSingleMarkers、estimatePoseBoard
-
refineDetectedMarkers
public void refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, Mat 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 坐标必须相同。
-
refineDetectedMarkers
public void refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs)
基于已检测到的标记和棋盘布局细化未检测到的标记- 参数
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 个元素的原始 rejectedCorners 数组。此函数尝试查找在基本 detecMarkers 函数中未检测到的标记。首先,根据当前检测到的标记和棋盘布局,函数插值缺失标记的位置。然后,它尝试根据 minRepDistance 和 errorCorrectionRate 参数在重新投影的标记和被拒绝的候选者之间找到对应关系。如果提供相机参数和畸变系数,则使用 projectPoint 函数重新投影缺失的标记。如果没有,则使用全局单应性插值缺失标记投影,并且棋盘中所有标记角点的 Z 坐标必须相同。
-
refineDetectedMarkers
public void refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners, Mat cameraMatrix)
基于已检测到的标记和棋盘布局细化未检测到的标记- 参数
image
- 输入图像board
- 棋盘中标记的布局。detectedCorners
- 已检测到的标记角点的向量。detectedIds
- 已检测到的标记标识符的向量。rejectedCorners
- 在标记检测过程中被拒绝的候选角点的向量。cameraMatrix
- 可选输入 3x3 浮点相机矩阵 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) \((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 个元素的原始 rejectedCorners 数组。此函数尝试查找在基本 detecMarkers 函数中未检测到的标记。首先,根据当前检测到的标记和棋盘布局,函数插值缺失标记的位置。然后,它尝试根据 minRepDistance 和 errorCorrectionRate 参数在重新投影的标记和被拒绝的候选者之间找到对应关系。如果提供相机参数和畸变系数,则使用 projectPoint 函数重新投影缺失的标记。如果没有,则使用全局单应性插值缺失标记投影,并且棋盘中所有标记角点的 Z 坐标必须相同。
-
refineDetectedMarkers
public void refineDetectedMarkers(Mat image, Board board, java.util.List<Mat> detectedCorners, Mat detectedIds, java.util.List<Mat> rejectedCorners)
基于已检测到的标记和棋盘布局细化未检测到的标记- 参数
image
- 输入图像board
- 棋盘中标记的布局。detectedCorners
- 已检测到的标记角点的向量。detectedIds
- 已检测到的标记标识符的向量。rejectedCorners
- 在标记检测过程中被拒绝的候选角点的向量。\(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) \((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 个元素的原始 rejectedCorners 数组。此函数尝试查找在基本 detecMarkers 函数中未检测到的标记。首先,根据当前检测到的标记和棋盘布局,函数插值缺失标记的位置。然后,它尝试根据 minRepDistance 和 errorCorrectionRate 参数在重新投影的标记和被拒绝的候选者之间找到对应关系。如果提供相机参数和畸变系数,则使用 projectPoint 函数重新投影缺失的标记。如果没有,则使用全局单应性插值缺失标记投影,并且棋盘中所有标记角点的 Z 坐标必须相同。
-
getDictionary
public Dictionary getDictionary()
-
setDictionary
public void setDictionary(Dictionary dictionary)
-
getDetectorParameters
public DetectorParameters getDetectorParameters()
-
setDetectorParameters
public void setDetectorParameters(DetectorParameters detectorParameters)
-
getRefineParameters
public RefineParameters getRefineParameters()
-
setRefineParameters
public void setRefineParameters(RefineParameters refineParameters)
-
-