【问题标题】:Aruco Marker Tracking With Multiple Markers From the Same Dictionary使用同一词典中的多个标记进行 Aruco 标记跟踪
【发布时间】:2019-10-01 16:31:30
【问题描述】:

我正在使用来自OpenCV ContribChAruCo marker tracking。我想跟踪多个板,但创建标记板的机制与我预期的不同。

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

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

【问题讨论】:

  • 如果我理解你的问题,添加一个偏移量。即到 5,您生成一个包含 55 个标记的字典,并且您只使用从 5 到 55(您忽略前五个标记。确定哪个板在视图中的第二个问题,它已经完成了这项任务,否则这一点是我不清楚

标签: c++ opencv aruco


【解决方案1】:

您可以简单地在Board 类中的向量ID 中的元素上添加一个偏移量。我无法告诉您这是否“受支持”,但我们将它用于非 charuco 板并且效果很好。 由于 charuco 板索引 nearestMarkerIdxids 向量的索引,这应该可以正常工作。

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多