类 CharucoBoard
- java.lang.Object
-
- org.opencv.objdetect.Board
-
- org.opencv.objdetect.CharucoBoard
-
public class CharucoBoard extends Board
ChArUco 棋盘是一个平面棋盘,其中标记放置在棋盘的白色方格内。ChArUco 棋盘的优点是它同时提供了 ArUco 标记的多功能性和棋盘角的精度,这对于标定和姿态估计非常重要。可以使用 generateImage() 方法绘制棋盘图像。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
CharucoBoard(long addr)
CharucoBoard(Size size, float squareLength, float markerLength, Dictionary dictionary)
CharucoBoard 构造函数CharucoBoard(Size size, float squareLength, float markerLength, Dictionary dictionary, Mat ids)
CharucoBoard 构造函数
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static CharucoBoard
__fromPtr__(long addr)
boolean
checkCharucoCornersCollinear(Mat charucoIds)
检查 ChArUco 标记是否共线protected void
finalize()
MatOfPoint3f
getChessboardCorners()
获取 CharucoBoard::chessboardCornersSize
getChessboardSize()
boolean
getLegacyPattern()
float
getMarkerLength()
float
getSquareLength()
void
setLegacyPattern(boolean legacyPattern)
设置传统棋盘模式。-
继承自类 org.opencv.objdetect.Board 的方法
generateImage, generateImage, generateImage, getDictionary, getIds, getNativeObjAddr, getObjPoints, getRightBottomCorner, matchImagePoints
-
-
-
-
构造函数详情
-
CharucoBoard
protected CharucoBoard(long addr)
-
CharucoBoard
public CharucoBoard(Size size, float squareLength, float markerLength, Dictionary dictionary, Mat ids)
CharucoBoard 构造函数- 参数
size
- x 和 y 方向上的棋盘方格数squareLength
- squareLength 棋盘方格边长(通常以米为单位)markerLength
- 标记边长(与 squareLength 使用相同的单位)dictionary
- 指示标记类型的标记字典ids
- 使用的标记 ID 数组。字典中的第一个标记用于填充白色棋盘方格。
-
CharucoBoard
public CharucoBoard(Size size, float squareLength, float markerLength, Dictionary dictionary)
CharucoBoard 构造函数- 参数
size
- x 和 y 方向上的棋盘方格数squareLength
- squareLength 棋盘方格边长(通常以米为单位)markerLength
- 标记边长(与 squareLength 使用相同的单位)dictionary
- 指示标记类型的标记字典。字典中的第一个标记用于填充白色棋盘方格。
-
-
方法详情
-
__fromPtr__
public static CharucoBoard __fromPtr__(long addr)
-
setLegacyPattern
public void setLegacyPattern(boolean legacyPattern)
设置传统棋盘模式。传统设置会在棋盘方格的行数为偶数时创建从左上角白色方格开始的棋盘模式,否则从黑色方格开始。此设置确保与 OpenCV 4.6.0 之前的版本创建的模式兼容。参见 https://github.com/opencv/opencv/issues/23152。默认值:false。- 参数
legacyPattern
- 自动生成
-
getLegacyPattern
public boolean getLegacyPattern()
-
getChessboardSize
public Size getChessboardSize()
-
getSquareLength
public float getSquareLength()
-
getMarkerLength
public float getMarkerLength()
-
getChessboardCorners
public MatOfPoint3f getChessboardCorners()
获取 CharucoBoard::chessboardCorners- 返回值
- 自动生成
-
checkCharucoCornersCollinear
public boolean checkCharucoCornersCollinear(Mat charucoIds)
检查 ChArUco 标记是否共线- 参数
charucoIds
- 每帧中 charucoCorners 中每个角的标识符列表。- 返回值
- 布尔值,如果检测到的角形成一条直线,则为 1 (true),否则为 0 (false)。如果角是共线的 (true),则 solvePnP、标定函数将失败。charucoIDs 中的 ID 数量应小于等于棋盘中棋盘角的数量。此函数检查 charuco 角是否在直线上(如果是,则返回 true),或者不在直线上(false)。检测到轴平行线、对角线和其他直线。简并情况:对于 charucoIDs 数量 <= 2,函数返回 true。
-
-