【问题标题】:OpenCV - Partial Image MatchingOpenCV - 部分图像匹配
【发布时间】:2014-12-15 23:15:05
【问题描述】:

我是计算机视觉的新手,我想实现图像搜索和匹配算法,其中匹配不一定是完全匹配,而是其中的部分区域。
例如:我有一个汽车数据库,输入图像包含一辆汽车(即 ROI),匹配的可能不是确切的图像,而是这辆车的任何图像(见下文):
输入图像(我的目标是前面的保时捷):

我希望可能的匹配是这样的(这不是同一辆车,而是我能找到的最接近的车来说明我的问题):

我决定从 Python 中的 OpenCV 库开始。我的问题可以实施吗?如果是,那么请引导我找到任何有用的信息以开始。

【问题讨论】:

  • @BhargavRao 是的,我已经学习了基础知识和一些图像处理技术,全部来自 OpenCV-Python 官方教程。
  • 你可以尝试这个领域的很多开源教程,一个很棒的就是这个opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/…,但是100% 可能
  • @jycr753 一切都好,图片显示没有链接。谢谢我知道模板匹配,但还没有测试过。但是模板匹配不需要完全匹配(模板),在我的情况下,我想要与类似对象的任何类似匹配。
  • 这取决于您的预期应用,特别是实时或无速度要求。
  • 你的目标是只匹配汽车吗?还是别的什么?

标签: python opencv image-processing computer-vision


【解决方案1】:

我建议使用匹配特征(关键点)方法,它们是尺度不变特征(SIFT)和加速鲁棒特征(SURF)。 Opencv 文档上有很多示例,您可以查看this one

this paper中提出了另一种替代方案:

如果你有一个预定义的参考图像,使用级联分类器的检测方法是有效的,用 opencv 很好地实现。

可以集成opencv的Cascade Classifier(here is tutorial),(检测人体的一部分也很有用)

Opencv 提供了一些已经训练用于检测面部、眼睛甚至身体的 xml 文件。您还可以针对目标对象进行训练以获取自己的 xml 文件(here is a tuto 如何从头开始训练)

【讨论】:

  • 谢谢,我一定会检查这些方法,看看它们是否适合我。
  • 对于实时我推荐使用级联分类器。正确训练它们有点烦人,但非常值得。
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2016-03-31
  • 2018-10-28
  • 2011-12-13
  • 2015-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多