c++ - 使用同一词典中的多个标记进行 Aruco 标记跟踪

标签 c++ opencv aruco

我正在使用 OpenCV Contrib 中的 ChAruCo 标记跟踪。我想跟踪多个板,但创建标记板的机制并不符合我的预期。

我想象的是使用一本字典(例如 DICT_4X4_50) 使用字典中不同的 ID 范围创建许多标记。
CharucoBoard::create() 接受字典并使用标记 0-X 来创建板。我想在范围的开头添加一个偏移量。

如果我可以创建板,cv::aruco::detectMarkers() 会输出可以确定 View 中的板的 ID。这是否受支持,如果不支持,我应该如何跟踪多个目标?

最佳答案

您可以简单地向 Board 类中的 vector id 中的元素添加偏移量。我无法告诉您这是否“受支持”,但我们将其用于非 Charuco 板并且工作正常。 由于 charuco 板索引 nearestMarkerIdxids vector 的索引,因此应该可以正常工作。

cv::Ptr<cv::aruco::CharucoBoard> board1 =  cv::aruco::CharucoBoard::create(3, 5, 0.32f, 0.08f, dictionary);
cv::Ptr<cv::aruco::CharucoBoard> board2 = cv::aruco::CharucoBoard::create(3, 5, 0.32f, 0.08f, dictionary);
int id_offset_board2 = board1->ids.size();
for(auto& id: board2->ids)
{
    id += id_offset_board2;
}

关于c++ - 使用同一词典中的多个标记进行 Aruco 标记跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379508/

相关文章:

C++虚拟克隆方法,异常继承

类 C 实现的 C++ 等效性能版本

c++ - 如何在不改变 OpenCV 的情况下写入和读取像素

c++ - 不能使用 CV_32UC1

python - OpenCV aruco 不能在 Python 中工作(Windows)

c++ - munmap_chunk() : invalid pointer: 0x00007fffbef49d90 in a recursive function

c++ - 微软视觉 C++ 2010

c++ - 使用 openCv 的 Aruco 标记,获取 3d 角坐标?

python - 对象在 AR (Aruco + OpenGL) 中错位

iphone - iphone 应用程序中的 C++ 对象