OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配
| 枚举 | 函数
Aruco标记,模块功能已移至objdetect模块

详细说明

ArUco标记检测,模块功能已移至objdetect模块

另见
ArucoDetectorCharucoDetectorBoardGridBoardCharucoBoard

struct  cv::aruco::EstimateParameters
 姿态估计参数。更多信息...
 

枚举

enum  cv::aruco::PatternPositionType {
  cv::aruco::ARUCO_CCW_CENTER ,
  cv::aruco::ARUCO_CW_TOP_LEFT_CORNER
}
 rvec/tvec定义了标记的右手坐标系。更多信息...
 

函数

double cv::aruco::calibrateCameraAruco (InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr< Board > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags=0, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
 使用Aruco标记校准相机。
 
double cv::aruco::calibrateCameraAruco (InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr< Board > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, const TermCriteria &criteria=TermCriteria(COUNT+EPS, 30, DBL_EPSILON))
 这是与calibrateCameraAruco相同的功能,但不含校准误差估计。
 
double cv::aruco::calibrateCameraCharuco (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr< CharucoBoard > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags=0, const TermCriteria &criteria=TermCriteria(COUNT+EPS, 30, DBL_EPSILON))
 使用Charuco角进行相机校准。
 
double cv::aruco::calibrateCameraCharuco (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr< CharucoBoard > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, const TermCriteria &criteria=TermCriteria(COUNT+EPS, 30, DBL_EPSILON))
 这是与calibrateCameraCharuco相同的功能,但不含校准误差估计。
 
void cv::aruco::detectCharucoDiamond (InputArray image, InputArrayOfArrays markerCorners, InputArray markerIds, float squareMarkerLengthRate, OutputArrayOfArrays diamondCorners, OutputArray diamondIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), Ptr< Dictionary > dictionary=makePtr< Dictionary >(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50)))
 检测 ChArUco Diamond 标记。
 
void cv::aruco::detectMarkers (InputArray image, const Ptr< Dictionary > &dictionary, OutputArrayOfArrays corners, OutputArray ids, const Ptr< DetectorParameters > &parameters=makePtr< DetectorParameters >(), OutputArrayOfArrays rejectedImgPoints=noArray())
 检测标记
 
void cv::aruco::drawCharucoDiamond (const Ptr< Dictionary > &dictionary, Vec4i ids, int squareLength, int markerLength, OutputArray img, int marginSize=0, int borderBits=1)
 绘制 ChArUco Diamond 标记。
 
void cv::aruco::drawPlanarBoard (const Ptr< Board > &board, Size outSize, OutputArray img, int marginSize, int borderBits)
 绘制平面板
 
int cv::aruco::estimatePoseBoard (InputArrayOfArrays corners, InputArray ids, const Ptr< Board > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)
 
bool cv::aruco::estimatePoseCharucoBoard (InputArray charucoCorners, InputArray charucoIds, const Ptr< CharucoBoard > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)
 根据某些角点的ChArUco板姿态估计
 
void cv::aruco::estimatePoseSingleMarkers (InputArrayOfArrays corners, float markerLength, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvecs, OutputArray tvecs, OutputArray objPoints=noArray(), const Ptr< EstimateParameters > &estimateParameters=makePtr< EstimateParameters >())
 
void cv::aruco::getBoardObjectAndImagePoints (const Ptr< Board > &board, InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints)
 获取 板对象和图像点
 
int cv::aruco::interpolateCornersCharuco (InputArrayOfArrays markerCorners, InputArray markerIds, InputArray image, const Ptr< CharucoBoard > &board, OutputArray charucoCorners, OutputArray charucoIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), int minMarkers=2)
 插值ChArUco板角点的位置。
 
void cv::aruco::refineDetectedMarkers (InputArray image, const Ptr< Board > &board, InputOutputArrayOfArrays detectedCorners, InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), float minRepDistance=10.f, float errorCorrectionRate=3.f, bool checkAllOrders=true, OutputArray recoveredIdxs=noArray(), const Ptr< DetectorParameters > &parameters=makePtr< DetectorParameters >())
 优化检测到的标记
 
bool cv::aruco::testCharucoCornersCollinear (const Ptr< CharucoBoard > &board, InputArray charucoIds)
 

枚举类型文档

◆ PatternPositionType

#include <opencv2/aruco/aruco_calib.hpp>

rvec/tvec 定义标记的右手坐标系。

PatternPositionType 定义此系统的中心和轴方向。轴 X (红色) - 第一个坐标轴,轴 Y (绿色) - 第二个坐标轴,轴 Z (蓝色) - 第三个坐标轴。

已弃用
使用 Board::matchImagePointscv::solvePnP
另见
estimatePoseSingleMarkers()
枚举器
ARUCO_CCW_CENTER 
Python: cv.aruco.ARUCO_CCW_CENTER

标记坐标系统以标记的中心为中心。

标记在其自身坐标系中的四个角(顺时针顺序)的坐标是:(-markerLength/2, markerLength/2, 0), (markerLength/2, markerLength/2, 0), (markerLength/2, -markerLength/2, 0), (-markerLength/2, -markerLength/2, 0)。

ARUCO_CW_TOP_LEFT_CORNER 
Python: cv.aruco.ARUCO_CW_TOP_LEFT_CORNER

标记坐标系统以标记的左上角为中心。

标记在其自身坐标系中的四个角(逆时针顺序)的坐标是:(0, 0, 0), (markerLength, 0, 0), (markerLength, markerLength, 0), (0, markerLength, 0)。

这些图案点对使用棋盘/ChArUco板非常有用。

函数文档

◆ calibrateCameraAruco() [1/2]

double cv::aruco::calibrateCameraAruco ( InputArrayOfArrays  corners,
InputArray  ids,
InputArray  counter,
const Ptr< Board > &  board,
Size  imageSize,
InputOutputArray  cameraMatrix,
InputOutputArray  distCoeffs,
OutputArrayOfArrays  rvecs,
OutputArrayOfArrays  tvecs,
OutputArray  stdDeviationsIntrinsics,
OutputArray  stdDeviationsExtrinsics,
OutputArray  perViewErrors,
int  flags = 0,
const TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) 
)
Python
cv.aruco.calibrateCameraAruco(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraArucoExtended(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

使用Aruco标记校准相机。

参数
corners所有帧中检测到的标记角点的向量。这些角点应与 detectMarkers 返回的格式相同(参见 detectMarkers )。
ids角落中每个标记的标识符列表
counter每帧中标记的数量,这样就可以拆分角落和 ids
board标记 布局
imageSize仅用于初始化内参矩阵的图像大小。
cameraMatrix输出 3x3 单精度相机矩阵 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 。如果指定了 CV_CALIB_USE_INTRINSIC_GUESS 和/或 CV_CALIB_FIX_ASPECT_RATIO,则 fx、fy、cx、cy 必须在调用函数之前初始化。
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 个元素
rvecs为每个板视图估计的旋转向量的向量(参见 Rodrigues)。即,每个第 k 个旋转向量及其相应的第 k 个平移向量(参见下一个输出参数说明)将板图案从模型坐标系(在此坐标系中指定对象点)转换到世界坐标系,即 k-第 k 个镜像视图(k=0.. M -1)的板图案的真实位置。
tvecs为每个模式视图估计的平移向量向量。
stdDeviationsIntrinsics输出内参参数的标准偏差估计向量。偏差值的顺序:\((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, s_4, \tau_x, \tau_y)\)。如果一个参数未估计,则其偏差为零。
stdDeviationsExtrinsics输出外参参数的标准偏差估计向量。偏差值的顺序:\((R_1, T_1, \dotsc , R_M, T_M)\),其中 M 是模式视图数,\(R_i, T_i\) 是连接的 1x3 矢量。
perViewErrors为每个模式视图估计的平均重投影误差向量。
flagsflags 等待校准过程的标志(详细信息请参阅 calibrateCamera )。
criteria迭代优化算法的终止准则。

此函数使用 Aruco 标记板校准相机。该函数接收来自多个视角的 标记板的检测标记列表。过程类似于calibrateCamera()中的棋盘格校准。函数返回最终的重投影误差。

已弃用
使用 Board::matchImagePointscv::solvePnP

◆ calibrateCameraAruco() [2/2]

double cv::aruco::calibrateCameraAruco ( InputArrayOfArrays  corners,
InputArray  ids,
InputArray  counter,
const Ptr< Board > &  board,
Size  imageSize,
InputOutputArray  cameraMatrix,
InputOutputArray  distCoeffs,
OutputArrayOfArrays  rvecs = noArray(),
OutputArrayOfArrays  tvecs = noArray(),
int  flags = 0,
const TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) 
)
Python
cv.aruco.calibrateCameraAruco(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraArucoExtended(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

这是与calibrateCameraAruco相同的功能,但不含校准误差估计。

这是一个方便提供的重载成员函数。它仅在与接受参数方面与上述函数不同。

已弃用
使用 Board::matchImagePointscv::solvePnP

◆ calibrateCameraCharuco() [1/2]

double cv::aruco::calibrateCameraCharuco ( InputArrayOfArrays  charucoCorners,
InputArrayOfArrays  charucoIds,
const Ptr< CharucoBoard > &  board,
Size  imageSize,
InputOutputArray  cameraMatrix,
InputOutputArray  distCoeffs,
OutputArrayOfArrays  rvecs,
OutputArrayOfArrays  tvecs,
OutputArray  stdDeviationsIntrinsics,
OutputArray  stdDeviationsExtrinsics,
OutputArray  perViewErrors,
int  flags = 0,
const TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) 
)
Python
cv.aruco.calibrateCameraCharuco(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraCharucoExtended(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

使用Charuco角进行相机校准。

参数
charucoCorners每帧检测到的 charuco 角点的向量
charucoIds每帧 charucoCorners 中每个角点的标识符列表
board标记 布局
imageSize输入图像大小
cameraMatrix输出 3x3 单精度相机矩阵 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 。如果指定了 CV_CALIB_USE_INTRINSIC_GUESS 和/或 CV_CALIB_FIX_ASPECT_RATIO,则 fx、fy、cx、cy 必须在调用函数之前初始化。
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 个元素
rvecs为每个板视图估计的旋转向量的向量(参见 Rodrigues)。即,每个第 k 个旋转向量及其相应的第 k 个平移向量(参见下一个输出参数说明)将板图案从模型坐标系(在此坐标系中指定对象点)转换到世界坐标系,即 k-第 k 个镜像视图(k=0.. M -1)的板图案的真实位置。
tvecs为每个模式视图估计的平移向量向量。
stdDeviationsIntrinsics输出内参参数的标准偏差估计向量。偏差值的顺序:\((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, s_4, \tau_x, \tau_y)\)。如果一个参数未估计,则其偏差为零。
stdDeviationsExtrinsics输出外参参数的标准偏差估计向量。偏差值的顺序:\((R_1, T_1, \dotsc , R_M, T_M)\),其中 M 是模式视图数,\(R_i, T_i\) 是连接的 1x3 矢量。
perViewErrors为每个模式视图估计的平均重投影误差向量。
flagsflags 等待校准过程的标志(详细信息请参阅 calibrateCamera )。
criteria迭代优化算法的终止准则。

此函数使用 Charuco 标记板的角点集校准相机。该函数接收来自多个视角的 标记板的检测角点和其标识符的列表。函数返回最终的重投影误差。

已弃用
使用 CharucoBoard::matchImagePointscv::solvePnP

◆ calibrateCameraCharuco() [2/2]

double cv::aruco::calibrateCameraCharuco ( InputArrayOfArrays  charucoCorners,
InputArrayOfArrays  charucoIds,
const Ptr< CharucoBoard > &  board,
Size  imageSize,
InputOutputArray  cameraMatrix,
InputOutputArray  distCoeffs,
OutputArrayOfArrays  rvecs = noArray(),
OutputArrayOfArrays  tvecs = noArray(),
int  flags = 0,
const TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) 
)
Python
cv.aruco.calibrateCameraCharuco(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraCharucoExtended(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

这是与calibrateCameraCharuco相同的功能,但不含校准误差估计。

已弃用
使用 CharucoBoard::matchImagePointscv::solvePnP

◆ detectCharucoDiamond()

void cv::aruco::detectCharucoDiamond ( InputArray  image,
InputArrayOfArrays  markerCorners,
InputArray  markerIds,
float  squareMarkerLengthRate,
OutputArrayOfArrays  diamondCorners,
OutputArray  diamondIds,
InputArray  cameraMatrix = noArray(),
InputArray  distCoeffs = noArray(),
Ptr< Dictionary dictionary = makePtrDictionary >(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50)) 
)
Python
cv.aruco.detectCharucoDiamond(image, markerCorners, markerIds, squareMarkerLengthRate[, diamondCorners[, diamondIds[, cameraMatrix[, distCoeffs[, dictionary]]]]]) -> diamondCorners, diamondIds

#include <opencv2/aruco/charuco.hpp>

检测 ChArUco Diamond 标记。

参数
image输入图像,用于角点亚像素。
markerCorners从 detectMarkers 函数检测到的检测到的标记角点列表。
markerIdsmarkerCorners 中的标记 ID 列表。
squareMarkerLengthRate正方形和标记长度的比率:squareMarkerLengthRate = squareLength/markerLength。实际单位并非必需。
diamondCorners输出检测到的钻石角落列表(每个钻石4个角落)。顺序与标记角落相同:左上角、右上角、右下角和左下角。与detectMarkers返回的角落类似格式(例如std::vector>)。
diamondIds钻石角落中的钻石标识符。每个钻石的标识符实际上为Vec4i类型,因此每个钻石有4个标识符,分别是组成钻石的aruco标记的标识符。
cameraMatrix可选相机标定矩阵。
distCoeffs可选相机畸变系数。
字典标记类型的标记字典。

此函数从前检测到的aruco标记中检测钻石标记。钻石存储在diamondCorners和diamondIds参数中。如果提供了相机标定参数,则钻石搜索基于重投影。如果没有,则基于单应性。单应性比重投影快,但精度较低。

已弃用
使用CharucoDetector::detectDiamonds

◆ 
void cv::aruco::detectMarkers ( InputArray  image,
const Ptr< Dictionary > &  字典,
OutputArrayOfArrays  corners,
OutputArray  ids,
const Ptr< DetectorParameters > &  parameters = makePtrDetectorParameters >(),
OutputArrayOfArrays  rejectedImgPoints = noArray() 
)
Python
cv.aruco.detectMarkers(image, dictionary[, corners[, ids[, parameters[, rejectedImgPoints]]]]) -> corners, ids, rejectedImgPoints

#include <opencv2/aruco.hpp>

检测标记

已弃用
使用类ArucoDetector::detectMarkers

◆ 
void cv::aruco::drawCharucoDiamond ( const Ptr< Dictionary > &  字典,
Vec4i  ids,
int  squareLength,
int  markerLength,
OutputArray  img,
int  marginSize = 0,
int  borderBits = 1 
)
Python
cv.aruco.drawCharucoDiamond(dictionary, ids, squareLength, markerLength[, img[, marginSize[, borderBits]]]) -> img

#include <opencv2/aruco/charuco.hpp>

绘制 ChArUco Diamond 标记。

参数
字典标记类型的标记字典。
ids每个ChArUco标记中的ArUco标记的4个标识符列表。
squareLength棋盘方块大小(像素)。
markerLength标记大小(像素)。
img包含标记的输出图像。此图像的大小将为3*squareLength + 2*marginSize。
marginSize输出图像中标记的最小边距(像素)
borderBits标记边框的宽度。

此函数返回的ChArUco标记图像,已准备好打印。

已弃用
使用CharucoBoard::generateImage()

◆ 
void cv::aruco::drawPlanarBoard ( const Ptr< Board > &  board,
Size  outSize,
OutputArray  img,
int  marginSize,
int  borderBits 
)
Python
cv.aruco.drawPlanarBoard(board, outSize, marginSize, borderBits[, img]) -> img

#include <opencv2/aruco.hpp>

绘制平面板

已弃用
使用Board::generateImage

◆ 
int cv::aruco::estimatePoseBoard ( InputArrayOfArrays  corners,
InputArray  ids,
const Ptr< Board > &  board,
InputArray  cameraMatrix,
InputArray  distCoeffs,
InputOutputArray  rvec,
InputOutputArray  tvec,
bool  useExtrinsicGuess = false 
)
Python
cv.aruco.estimatePoseBoard(corners, ids, board, cameraMatrix, distCoeffs, rvec, tvec[, useExtrinsicGuess]) -> retval, rvec, tvec

◆ 
bool cv::aruco::estimatePoseCharucoBoard ( InputArray  charucoCorners,
InputArray  charucoIds,
const Ptr< CharucoBoard > &  board,
InputArray  cameraMatrix,
InputArray  distCoeffs,
InputOutputArray  rvec,
InputOutputArray  tvec,
bool  useExtrinsicGuess = false 
)
Python
cv.aruco.estimatePoseCharucoBoard(charucoCorners, charucoIds, board, cameraMatrix, distCoeffs, rvec, tvec[, useExtrinsicGuess]) -> retval, rvec, tvec

#include <opencv2/aruco.hpp>

根据某些角点的ChArUco板姿态估计

参数
charucoCorners检测到的charuco角落的向量
charucoIdscharucoCorners 中每个角的标识列表
boardChArUco 板的布局
cameraMatrix3x3 浮点相机矩阵输入 \(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个元素
rvec输出向量(例如 cv::Mat),对应于板的旋转变量(参见 cv::Rodrigues)。
tvec输出向量(例如 cv::Mat),对应于板的平移向量。
useExtrinsicGuess定义是否使用 `rvec` 和 `tvec` 的初始猜测值。

该函数从检测到的某些角落中估计 Charuco 板的位姿。该函数检查输入角落是否足够且有效以执行姿态估计。如果姿态估计有效,则返回 true,否则返回 false。

已弃用
使用 CharucoBoard::matchImagePointscv::solvePnP
另见
使用 cv::drawFrameAxes 获取对象点的世界坐标轴。

◆ estimatePoseSingleMarkers()

void cv::aruco::estimatePoseSingleMarkers ( InputArrayOfArrays  corners,
float  markerLength,
InputArray  cameraMatrix,
InputArray  distCoeffs,
OutputArray  rvecs,
OutputArray  tvecs,
OutputArray  objPoints = noArray(),
const Ptr< EstimateParameters > &  estimateParameters = makePtrEstimateParameters >() 
)
Python
cv.aruco.estimatePoseSingleMarkers(corners, markerLength, cameraMatrix, distCoeffs[, rvecs[, tvecs[, objPoints[, estimateParameters]]]]) -> rvecs, tvecs, objPoints

◆ getBoardObjectAndImagePoints()

void cv::aruco::getBoardObjectAndImagePoints ( const Ptr< Board > &  board,
InputArrayOfArrays  detectedCorners,
InputArray  detectedIds,
OutputArray  objPoints,
OutputArray  imgPoints 
)
Python
cv.aruco.getBoardObjectAndImagePoints(board, detectedCorners, detectedIds[, objPoints[, imgPoints]]) -> objPoints, imgPoints

#include <opencv2/aruco.hpp>

获取 板对象和图像点

已弃用
使用 Board::matchImagePoints

◆ interpolateCornersCharuco()

int cv::aruco::interpolateCornersCharuco ( InputArrayOfArrays  markerCorners,
InputArray  markerIds,
InputArray  image,
const Ptr< CharucoBoard > &  board,
OutputArray  charucoCorners,
OutputArray  charucoIds,
InputArray  cameraMatrix = noArray(),
InputArray  distCoeffs = noArray(),
int  minMarkers = 2 
)
Python
cv.aruco.interpolateCornersCharuco(markerCorners, markerIds, image, board[, charucoCorners[, charucoIds[, cameraMatrix[, distCoeffs[, minMarkers]]]]]) -> retval, charucoCorners, charucoIds

#include <opencv2/aruco/charuco.hpp>

插值ChArUco板角点的位置。

参数
markerCorners已检测到的标记角落的向量。对于每个标记,提供其四个角落(例如 std::vector >)。对于 N 个检测到的标记,此数组的维度应为 Nx4。角落的顺序应为顺时针方向。
markerIds角落中每个标记的标识符列表
image输入图像必需用于角落细化。注意,标记没有检测到,应通过角落和 ids 参数发送。
boardChArUco 板的布局
charucoCorners插值棋盘角落
charucoIds插值棋盘角落标识
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个元素
minMarkers必须检测到的相邻标记的数量,才能返回 Charuco 角落

此函数接收检测到的标记并返回从ChArUco板上使用检测到的Aruco标记计算出的棋盘角点的二维位置。如果提供相机参数,则基于近似姿态估计,否则基于局部单应性。只返回可见的角点。对于每个角点,其在charucoIds中的对应标识符也返回。函数返回插值角点的数量。

已弃用
使用 CharucoDetector::detectBoard

◆ refineDetectedMarkers()

void cv::aruco::refineDetectedMarkers ( InputArray  image,
const Ptr< Board > &  board,
InputOutputArrayOfArrays  detectedCorners,
InputOutputArray  detectedIds,
InputOutputArrayOfArrays  rejectedCorners,
InputArray  cameraMatrix = noArray(),
InputArray  distCoeffs = noArray(),
float  minRepDistance = 10.f,
float  errorCorrectionRate = 3.f,
bool  checkAllOrders = true,
OutputArray  recoveredIdxs = noArray(),
const Ptr< DetectorParameters > &  parameters = makePtrDetectorParameters >() 
)
Python
cv.aruco.refineDetectedMarkers(image, board, detectedCorners, detectedIds, rejectedCorners[, cameraMatrix[, distCoeffs[, minRepDistance[, errorCorrectionRate[, checkAllOrders[, recoveredIdxs[, parameters]]]]]]]) -> detectedCorners, detectedIds, rejectedCorners, recoveredIdxs

#include <opencv2/aruco.hpp>

优化检测到的标记

已弃用
使用类 ArucoDetector::refineDetectedMarkers

◆ testCharucoCornersCollinear()

bool cv::aruco::testCharucoCornersCollinear ( const Ptr< CharucoBoard > &  board,
InputArray  charucoIds 
)
Python
cv.aruco.testCharucoCornersCollinear(board, charucoIds) -> retval