如何生成 ChAruco 板校准?

how to generate a ChAruco board calibration?

如何生成 ChAruco 板校准?我试图在 Google 搜索中找到现有的板,但找不到。

谢谢, 卡洛斯

按照 CharucoBoard Class Reference 中所述使用 cv::aruco::CharucoBoard::draw 创建图像,然后 imwrite 将图像写入文件。

这是一个关于如何创建 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;
}

您可以在此处生成 ChArUco 模式并将它们保存为矢量图形 (PDF):https://calib.io/pages/camera-calibration-pattern-generator 这样您就可以在打印中获得最佳准确性。

opencv_contrib中会内置一个pattern_generator 文件夹中的那个地方:opencv_contrib/modules/aruco/misc/pattern_generator/

您可以使用它来生成矢量图形的标记并打印出来。

https://github.com/opencv/opencv_contrib/pull/2250

PS。大声笑,我把工具给了官方助手scripts/tool,现在你们没有理由删除我的答案XDDD....

可以在这里生成Charuco板(svg格式):MarkrMakr