OpenCV::matchShapes() 示例?

标签 opencv object-detection

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

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

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

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

最佳答案

第1步:检测书籍轮廓并将其存储在vector<Point>中.

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

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

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

关于OpenCV::matchShapes() 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11735646/

相关文章:

python - 如何在 TensorFlow 对象检测 API 中从头开始训练?

c++ - 编译ros节点时对...的 undefined reference

c++ - 如何使用 camshift 算法获得矩形?

python - 如何使用 OpenCV 从图像中裁剪和提取图章?

python - 几行说明:使用openCV在python中进行模板匹配

java - 通过级联 java 进行 OpenCV 对象检测(非面部检测)

opencv - 为什么我们需要将 (camera_matrix 1 & 2) 和 (R and T) 参数都输入到 stereoRectify()?

opencv - 检测背景几乎相似的图像中的对象

image-processing - 检测旋转的车辆图像

tensorflow - 是否有必要在图像上标记类别的每个对象?