opencv - 模板匹配?对象识别和特征匹配或解决方案是什么?

标签 opencv image-processing object-recognition template-matching

问题:我有一张对象的照片(制造零件,如下面所附照片),使用我的 Andoird 手机相机,我想验证相机预览中的对象是否与模板匹配。 (换句话说,它是否与模板相同的部分)

  • 我可以让用户移动相机,以便在相机预览中获得与模板相似的模板 View ,但是会有不同的噪音水平和/或照明,可能还有不同的背景。

  • 问题:你建议我用什么来解决这个问题?我在考虑 Canny 边缘提取,然后将相机帧与模板中的 Canny 边缘提取相匹配?这是一个好主意吗?如果是,请告诉我如何实现?任何资源? sample ? (我可以进行 Canny 边缘提取,但找不到匹配的方法)

    如果不是一个好主意,那么您有什么建议?

    我尝试过的事情:
  • 特征提取和匹配:我使用了一些来自 OpenCV 的不同提取器和匹配器实现,我的应用程序正在工作并绘制检测到的特征点和匹配等。但是作为图像处理的初学者,我无法理解结果以及如何知道什么是匹配。任何想法,帮助,好的资源?
  • 模板匹配:我使用了 OpenCV 模板匹配,但是性能很糟糕,我认为这不是解决方案。

  • sample template photo

    最佳答案

    我在您的测试图像上尝试使用手机进行对象识别,结果是肯定的。

    使用的检测器:ORB(二进制检测器)。

    使用的描述符:ORB。

    匹配技术:蛮力匹配。

    图像尺寸 640x480。

    我能够检测到大约 500 个特征点(关键点的数量已经足够了,但是当您有更多具有相似外观对象的图像时,它可能会产生错误匹配。您需要改进匹配以避免错误匹配)。
    enter image description here

    两种不同尺度的物体识别结果。
    enter image description here
    enter image description here

    关于您在理解物体识别方面遇到困难。你到底有什么不明白的(具体话题)。
    推荐你看这两本书

  • 学习 OpenCV,作者:Adrian Kaehler、Gary Bradski
  • OpenCV 2 计算机视觉应用程序编程食谱,作者:Robert Laganière(第 8 章和第 9 章)。

  • 干杯!

    关于opencv - 模板匹配?对象识别和特征匹配或解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370078/

    相关文章:

    opencv - 在 pycharm 中安装 OpenCV 时出错 - python 3.5.3

    java - 如何在 Windows 10 中安装 Processing-Java?

    image-processing - DataLoader - 洗牌隐式对

    ruby-on-rails - 如何搜索看起来像上传图片的图片

    matlab - 识别叶子的裂片和凸起

    opencv - 从左或右红外图像到深度的坐标映射 - R200 Intelrealsense

    python - 查找 RGB 颜色 channel 的变化-Python

    python - 如何使用opencv函数在Django View 中播放视频?

    c++ - 如何将 Kinect 2.0 的深度数据转换为距离值?

    machine-learning - 物体识别及尺寸测量