如何生成 ChAruco 板校准?我试图在谷歌搜索中找到一个现有的板,但我找不到它。
谢谢,卡洛斯
cv::aruco::CharucoBoard::draw
按照CharucoBoard 类参考中的说明使用来创建图像,然后imwrite
将图像写入文件。
您可以在此处生成 ChArUco 模式并将其保存为矢量图形 (PDF):https ://calib.io/pages/camera-calibration-pattern-generator 这样您就可以获得最佳的打印精度。
可以在此处生成 Charuco 板(svg 格式):MarkrMakr
这是一个关于如何创建 Charuco 板并将其保存为图像的 C++ 示例:
#include <opencv2/aruco/charuco.hpp>
#include <opencv2/imgcodecs.hpp>
int main(void)
{
cv::Mat m(700, 500, CV_8UC1);
cv::Ptr< cv::aruco::Dictionary > dict = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_4X4_50);
cv::Ptr< cv::aruco::CharucoBoard > charuco = cv::aruco::CharucoBoard::create(7, 5, 0.04, 0.02, dict);
charuco->draw(cv::Size(700, 500), m, 0, 1);
cv::imwrite("board.png", m);
return 0;
}
在 opencv_contrib 中将有一个内置的 pattern_generator 位于文件夹:opencv_contrib/modules/aruco/misc/pattern_generator/
您可以使用它将标记生成为矢量图形并将其打印出来。
https://github.com/opencv/opencv_contrib/pull/2250
PS。大声笑,我把工具放到官方帮助脚本/工具中,现在你们没有理由删除我的答案 XDDD....