OpenCV :: matchShapes()示例?

时间:2012-07-31 08:02:12

标签: opencv object-detection

我想使用matchShapes()函数在查询图像中查找对象。

假设我有一本书的模型图像,我想提取它的形状,然后尝试在另一张图像中找到这本书(它的形状)。

我搜索了很多,但找不到任何关于如何使用matchShapes来实现这一点的真实示例。文档缺乏。 someoen可以用C ++做一个小例子吗?

非常感谢! (注意我知道我可以使用SIFT / ORB等,但我想使用matchShapes())

1 个答案:

答案 0 :(得分:2)

步骤1:检测书的轮廓并将其存储在vector<Point>

步骤2:检测另一张图像上的轮廓。

步骤3:迭代检测到的轮廓并将步骤1中检测到的形状与另一个图像上检测到的每个轮廓相匹配。您检测到vector<vector<Point> >个轮廓。对它们进行迭代,您可以将步骤1中的模型vector<Point>和轮廓中的vector<Point>传递给matchShape()函数。请参阅我的回答here如何使用matchShape()功能。

请注意,图书在其他图像上的形状必须与模型图像上的形状相同。它只能旋转,移位或缩放。