2

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

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

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

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

4

1 回答 1

3

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

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

第 3 步:迭代检测到的轮廓,并将第 1 步中检测到的形状与在另一个图像上检测到的每个轮廓相匹配。您已检测到vector<vector<Point> >轮廓。迭代它们,您将模型vector<Point>从步骤 1 和vector<Point>轮廓传递到matchShape()函数。请在此处查看我的答案如何使用matchShape()功能。

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

于 2012-07-31T08:26:50.147 回答