类 CharucoDetector


  • public class CharucoDetector
    extends Algorithm
    • 构造函数详细信息

      • CharucoDetector

        protected CharucoDetector​(long addr)
      • CharucoDetector

        public CharucoDetector​(CharucoBoard board,
                               CharucoParameters charucoParams,
                               DetectorParameters detectorParams,
                               RefineParameters refineParams)
        基本的 CharucoDetector 构造函数
        参数
        board - ChAruco 板
        charucoParams - charuco 检测参数
        detectorParams - 标记检测参数
        refineParams - 标记细化检测参数
      • CharucoDetector

        public CharucoDetector​(CharucoBoard board,
                               CharucoParameters charucoParams,
                               DetectorParameters detectorParams)
        基本的 CharucoDetector 构造函数
        参数
        board - ChAruco 板
        charucoParams - charuco 检测参数
        detectorParams - 标记检测参数
      • CharucoDetector

        public CharucoDetector​(CharucoBoard board,
                               CharucoParameters charucoParams)
        基本的 CharucoDetector 构造函数
        参数
        board - ChAruco 板
        charucoParams - charuco 检测参数
      • CharucoDetector

        public CharucoDetector​(CharucoBoard board)
        基本的 CharucoDetector 构造函数
        参数
        board - ChAruco 板
    • 方法详细信息

      • setCharucoParameters

        public void setCharucoParameters​(CharucoParameters charucoParameters)
      • setDetectorParameters

        public void setDetectorParameters​(DetectorParameters detectorParameters)
      • setRefineParameters

        public void setRefineParameters​(RefineParameters refineParameters)
      • detectBoard

        public void detectBoard​(Mat image,
                                Mat charucoCorners,
                                Mat charucoIds,
                                java.util.List<Mat> markerCorners,
                                Mat markerIds)
        检测 Aruco 标记并插值 ChArUco 板角的位置
        参数
        image - 角点细化所需的输入图像。 请注意,不会检测到标记,应在 corners 和 ids 参数中发送。
        charucoCorners - 插值的棋盘角点。
        charucoIds - 插值的棋盘角点标识符。
        markerCorners - 已检测到的标记角点的向量。 对于每个标记,都提供了其四个角点(例如 std::vector<std::vector<cv::Point2f> > )。 对于 N 个检测到的标记,此数组的维度应为 Nx4。 角点的顺序应为顺时针方向。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。
        markerIds - corners 中每个标记的标识符列表。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数接收检测到的标记,并使用检测到的 Aruco 标记从 ChArUco 板返回棋盘角点的 2D 位置。 如果 markerCorners 和 markerCorners 为空,detectMarkers() 将运行并检测 Aruco 标记和 IDs。 如果提供了相机参数,则该过程基于近似的姿势估计,否则基于局部单应性。 仅返回可见角点。 对于每个角点,其对应的标识符也以 charucoIds 返回。 SEE: findChessboardCorners 注意:在 OpenCV 4.6.0 之后,对于偶数行计数,ChArUco 模式生成算法发生了不兼容的更改。 使用 cv::aruco::CharucoBoard::setLegacyPattern() 确保与使用 4.6.0 之前的 OpenCV 版本创建的模式兼容。 有关更多信息,请参阅问题:https://github.com/opencv/opencv/issues/23152
      • detectBoard

        public void detectBoard​(Mat image,
                                Mat charucoCorners,
                                Mat charucoIds,
                                java.util.List<Mat> markerCorners)
        检测 Aruco 标记并插值 ChArUco 板角的位置
        参数
        image - 角点细化所需的输入图像。 请注意,不会检测到标记,应在 corners 和 ids 参数中发送。
        charucoCorners - 插值的棋盘角点。
        charucoIds - 插值的棋盘角点标识符。
        markerCorners - 已检测到的标记角点的向量。 对于每个标记,都提供了其四个角点(例如 std::vector<std::vector<cv::Point2f> > )。 对于 N 个检测到的标记,此数组的维度应为 Nx4。 角点的顺序应为顺时针方向。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数接收检测到的标记,并使用检测到的 Aruco 标记从 ChArUco 板返回棋盘角点的 2D 位置。 如果 markerCorners 和 markerCorners 为空,detectMarkers() 将运行并检测 Aruco 标记和 IDs。 如果提供了相机参数,则该过程基于近似的姿势估计,否则基于局部单应性。 仅返回可见角点。 对于每个角点,其对应的标识符也以 charucoIds 返回。 SEE: findChessboardCorners 注意:在 OpenCV 4.6.0 之后,对于偶数行计数,ChArUco 模式生成算法发生了不兼容的更改。 使用 cv::aruco::CharucoBoard::setLegacyPattern() 确保与使用 4.6.0 之前的 OpenCV 版本创建的模式兼容。 有关更多信息,请参阅问题:https://github.com/opencv/opencv/issues/23152
      • detectBoard

        public void detectBoard​(Mat image,
                                Mat charucoCorners,
                                Mat charucoIds)
        检测 Aruco 标记并插值 ChArUco 板角的位置
        参数
        image - 角点细化所需的输入图像。 请注意,不会检测到标记,应在 corners 和 ids 参数中发送。
        charucoCorners - 插值的棋盘角点。
        charucoIds - 插值的棋盘角点标识符。 提供了角点(例如 std::vector<std::vector<cv::Point2f> > )。 对于 N 个检测到的标记,此数组的维度应为 Nx4。 角点的顺序应为顺时针方向。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数接收检测到的标记,并使用检测到的 Aruco 标记从 ChArUco 板返回棋盘角点的 2D 位置。 如果 markerCorners 和 markerCorners 为空,detectMarkers() 将运行并检测 Aruco 标记和 IDs。 如果提供了相机参数,则该过程基于近似的姿势估计,否则基于局部单应性。 仅返回可见角点。 对于每个角点,其对应的标识符也以 charucoIds 返回。 SEE: findChessboardCorners 注意:在 OpenCV 4.6.0 之后,对于偶数行计数,ChArUco 模式生成算法发生了不兼容的更改。 使用 cv::aruco::CharucoBoard::setLegacyPattern() 确保与使用 4.6.0 之前的 OpenCV 版本创建的模式兼容。 有关更多信息,请参阅问题:https://github.com/opencv/opencv/issues/23152
      • detectDiamonds

        public void detectDiamonds​(Mat image,
                                   java.util.List<Mat> diamondCorners,
                                   Mat diamondIds,
                                   java.util.List<Mat> markerCorners,
                                   Mat markerIds)
        检测 ChArUco 菱形标记
        参数
        image - 角点亚像素所需的输入图像。
        diamondCorners - 检测到的菱形角点的输出列表(每个菱形 4 个角点)。 顺序与标记角点中的顺序相同:左上、右上、右下和左下。 与 detectMarkers 返回的角点类似的格式(例如 std::vector<std::vector<cv::Point2f> > )。
        diamondIds - diamondCorners 中菱形的 IDs。 每个菱形的 ID 实际上是 Vec4i 类型,因此每个菱形都有 4 个 IDs,这些 IDs 是组成菱形的 Aruco 标记的 IDs。
        markerCorners - 来自 detectMarkers 函数的检测到的标记角点的列表。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。
        markerIds - markerCorners 中标记 IDs 的列表。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数从先前检测到的 ArUco 标记中检测菱形标记。 菱形在 diamondCorners 和 diamondIds 参数中返回。 如果提供了相机校准参数,则菱形搜索基于重投影。 否则,菱形搜索基于单应性。 单应性比重投影更快,但精度较低。
      • detectDiamonds

        public void detectDiamonds​(Mat image,
                                   java.util.List<Mat> diamondCorners,
                                   Mat diamondIds,
                                   java.util.List<Mat> markerCorners)
        检测 ChArUco 菱形标记
        参数
        image - 角点亚像素所需的输入图像。
        diamondCorners - 检测到的菱形角点的输出列表(每个菱形 4 个角点)。 顺序与标记角点中的顺序相同:左上、右上、右下和左下。 与 detectMarkers 返回的角点类似的格式(例如 std::vector<std::vector<cv::Point2f> > )。
        diamondIds - diamondCorners 中菱形的 IDs。 每个菱形的 ID 实际上是 Vec4i 类型,因此每个菱形都有 4 个 IDs,这些 IDs 是组成菱形的 Aruco 标记的 IDs。
        markerCorners - 来自 detectMarkers 函数的检测到的标记角点的列表。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数从先前检测到的 ArUco 标记中检测菱形标记。 菱形在 diamondCorners 和 diamondIds 参数中返回。 如果提供了相机校准参数,则菱形搜索基于重投影。 否则,菱形搜索基于单应性。 单应性比重投影更快,但精度较低。
      • detectDiamonds

        public void detectDiamonds​(Mat image,
                                   java.util.List<Mat> diamondCorners,
                                   Mat diamondIds)
        检测 ChArUco 菱形标记
        参数
        image - 角点亚像素所需的输入图像。
        diamondCorners - 检测到的菱形角点的输出列表(每个菱形 4 个角点)。 顺序与标记角点中的顺序相同:左上、右上、右下和左下。 与 detectMarkers 返回的角点类似的格式(例如 std::vector<std::vector<cv::Point2f> > )。
        diamondIds - diamondCorners 中菱形的 IDs。 每个菱形的 ID 实际上是 Vec4i 类型,因此每个菱形都有 4 个 IDs,这些 IDs 是组成菱形的 Aruco 标记的 IDs。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 如果 markerCorners 和 markerCorners 为空,则该函数检测 Aruco 标记和 IDs。 此函数从先前检测到的 ArUco 标记中检测菱形标记。 菱形在 diamondCorners 和 diamondIds 参数中返回。 如果提供了相机校准参数,则菱形搜索基于重投影。 否则,菱形搜索基于单应性。 单应性比重投影更快,但精度较低。
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类中 Algorithm
        抛出
        java.lang.Throwable