opencv - 在图像opencv中检测对象

标签 opencv image-processing computer-vision

Image in which object needs to be detected

我已附上一张由对象组成的图像。问题是要找到图像中存在的对象的数量。我已经尝试过opencv模板匹配,但是缩放,旋转和变形并不是不变的,这意味着如果我从该图像中获取对象的补丁并尝试进行模板匹配,那么某些对象将不会匹配突出部分,因为它们很小钻头变形或取向不同。模板匹配的问题是,首先我必须从查询图像本身中获取模板。因此,如果图像不同,则不会匹配。

有没有更好的方法来解决这种问题。

附言对象不必每次都相同。

最佳答案

如果您使用有光泽的杆边缘,这很简单。无需模板匹配。看下面的输出图片

enter image description here

我做了什么:

  • 阈值并扩展图像
  • 在大约圆形区域内的区域中计算轮廓。

  • 您可以使用多种方法。如果正确传递参数,则直接霍夫圆可能有效。但这是我认为最安全的方法。
    对于您的数量来说,这是一个不错的估计,如果我的阈值正确,它会变得更好(在此未计入3支杆)。通过说如果您指的是完全不同的对象,对象可能并不总是相同的,那么您需要对图像进行必要的操作

    关于opencv - 在图像opencv中检测对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45898282/

    相关文章:

    android - 通过位切换混淆 JPG - 在 Android 上读取性能

    java - 如何用JAVA模糊图像的一部分

    python - Numpy:如何将颜色矩阵转换为扁平向量

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

    c++ - 作为马尔可夫随机场 (MRF) : how to refine the cmex code? 输入的概率

    c++ - Opencv 图像包装器 cpp

    c++ - 为 Dev C++ 安装 open cv

    c++ - 在 OpenCV 中存储图像和指针

    python - 如何使用 OpenCV 去除图像上的蓝色背景颜色?

    actionscript-3 - ActionScript-3 中的图像处理和效果