OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项

ChArUco 棋盘是一个平面棋盘,其中标记放置在棋盘的白色方格内。更多…

#include <opencv2/objdetect/aruco_board.hpp>

cv::aruco::CharucoBoard 的协作图

公共成员函数

 CharucoBoard ()
 
 CharucoBoard (const Size &size, float squareLength, float markerLength, const Dictionary &dictionary, InputArray ids=noArray())
 CharucoBoard 构造函数。
 
bool checkCharucoCornersCollinear (InputArray charucoIds) const
 检查 ChArUco 标记是否共线
 
std::vector< Point3fgetChessboardCorners () const
 获取 CharucoBoard::chessboardCorners
 
Size getChessboardSize () const
 
bool getLegacyPattern () const
 
float getMarkerLength () const
 
std::vector< std::vector< int > > getNearestMarkerCorners () const
 获取 CharucoBoard::nearestMarkerCorners,对于每个 charuco 角点,每个标记的最近标记角点 ID
 
std::vector< std::vector< int > > getNearestMarkerIdx () const
 获取 CharucoBoard::nearestMarkerIdx,对于每个 charuco 角点,在 ids 数组中的最近标记索引
 
float getSquareLength () const
 
void setLegacyPattern (bool legacyPattern)
 设置传统棋盘模式。
 
- 继承自 cv::aruco::Board 的公共成员函数
 Board ()
 
 Board (InputArrayOfArrays objPoints, const Dictionary &dictionary, InputArray ids)
 常用的 Board 构造函数。
 
void generateImage (Size outSize, OutputArray img, int marginSize=0, int borderBits=1) const
 绘制平面棋盘。
 
const DictionarygetDictionary () const
 返回此棋盘使用的 Dictionary
 
const std::vector< int > & getIds () const
 棋盘中标记标识符的向量(应与 objPoints 大小相同)
 
const std::vector< std::vector< Point3f > > & getObjPoints () const
 返回棋盘中所有标记角点目标点的数组。
 
const Point3fgetRightBottomCorner () const
 获取棋盘右下角的坐标,在调用 create() 函数时设置。
 
void matchImagePoints (InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints) const
 给定棋盘配置和一组检测到的标记,返回相应的图像点和目标点,可用于 solvePnP()
 

其他继承成员

- 继承自 cv::aruco::Board 的受保护成员函数
 Board (const Ptr< Impl > &impl)
 
- 继承自 cv::aruco::Board 的受保护属性
Ptr< Impl > impl
 

详细描述

ChArUco 棋盘是一个平面棋盘,其中标记放置在棋盘的白色方格内。

ChArUco 棋盘的优点是它同时提供了 ArUco 标记的多功能性和棋盘角的精度,这对于标定和位姿估计非常重要。可以使用 generateImage() 方法绘制棋盘图像。

构造函数和析构函数文档

◆ CharucoBoard() [1/2]

cv::aruco::CharucoBoard::CharucoBoard ( const Size & size,
float squareLength,
float markerLength,
const Dictionary & dictionary,
InputArray ids = noArray() )
Python
cv.aruco.CharucoBoard(size, squareLength, markerLength, dictionary[, ids]) -> <aruco_CharucoBoard 对象>

CharucoBoard 构造函数。

参数
sizex 和 y 方向上棋盘方格的数量
squareLengthsquareLength 棋盘方格边长(通常以米为单位)
markerLengthmarkerLength 标记边长(与 squareLength 使用相同的单位)
dictionary指示标记类型的标记字典
ids用于标记的id数组。字典中的第一个标记用于填充白色棋盘格。
以下是此函数的调用图

◆ CharucoBoard() [2/2]

cv::aruco::CharucoBoard::CharucoBoard ( )
Python
cv.aruco.CharucoBoard(size, squareLength, markerLength, dictionary[, ids]) -> <aruco_CharucoBoard 对象>

成员函数文档

◆ checkCharucoCornersCollinear()

bool cv::aruco::CharucoBoard::checkCharucoCornersCollinear ( InputArray charucoIds) const
Python
cv.aruco.CharucoBoard.checkCharucoCornersCollinear(charucoIds) -> retval

检查 ChArUco 标记是否共线

参数
charucoIds每帧中charucoCorners中每个角点的标识符列表。
返回值
布尔值,如果检测到的角点形成一条直线,则为1(true);如果它们没有形成直线,则为0(false)。如果角点共线(true),则solvePnP、标定函数将失败。

charucoIDs中的id数量应该小于等于棋盘上棋盘角点的数量。此函数检查charuco角点是否在一条直线上(如果是,则返回true),或者不在一条直线上(false)。检测到平行于轴线、对角线和其他直线。退化情况:对于charucoIDs数量 <= 2,函数返回true。

◆ getChessboardCorners()

std::vector< Point3f > cv::aruco::CharucoBoard::getChessboardCorners ( ) const
Python
cv.aruco.CharucoBoard.getChessboardCorners() -> retval

获取 CharucoBoard::chessboardCorners

◆ getChessboardSize()

Size cv::aruco::CharucoBoard::getChessboardSize ( ) const
Python
cv.aruco.CharucoBoard.getChessboardSize() -> retval

◆ getLegacyPattern()

bool cv::aruco::CharucoBoard::getLegacyPattern ( ) const
Python
cv.aruco.CharucoBoard.getLegacyPattern() -> retval

◆ getMarkerLength()

float cv::aruco::CharucoBoard::getMarkerLength ( ) const
Python
cv.aruco.CharucoBoard.getMarkerLength() -> retval

◆ getNearestMarkerCorners()

std::vector< std::vector< int > > cv::aruco::CharucoBoard::getNearestMarkerCorners ( ) const

获取 CharucoBoard::nearestMarkerCorners,对于每个 charuco 角点,每个标记的最近标记角点 ID

◆ getNearestMarkerIdx()

std::vector< std::vector< int > > cv::aruco::CharucoBoard::getNearestMarkerIdx ( ) const

获取 CharucoBoard::nearestMarkerIdx,对于每个 charuco 角点,在 ids 数组中的最近标记索引

◆ getSquareLength()

float cv::aruco::CharucoBoard::getSquareLength ( ) const
Python
cv.aruco.CharucoBoard.getSquareLength() -> retval

◆ setLegacyPattern()

void cv::aruco::CharucoBoard::setLegacyPattern ( bool legacyPattern)
Python
cv.aruco.CharucoBoard.setLegacyPattern(legacyPattern) ->

设置传统棋盘模式。

Legacy设置在棋盘格数量为偶数行时,会在左上角创建一个白色方块的棋盘图案,否则会创建一个黑色方块。此设置确保与OpenCV 4.6.0之前的版本创建的图案兼容。参见 https://github.com/opencv/opencv/issues/23152

默认值:false。


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