代码之家  ›  专栏  ›  技术社区  ›  CTOverton

识别图像目标线

  •  1
  • CTOverton  · 技术社区  · 6 年前

    我正在尝试编写一个脚本来查看图像,查看图像上的行,并围绕这些行创建边界框。这就是我所说的…

    我有这样的形象: Image of Setup

    我试着用一个脚本来聪明地裁剪每个部分。我想出的最好的办法是在每个部分都用彩色胶带围起来,像这样: Image with tape

    给定这张带有彩色磁带的图像,程序应该能够找到彩色线并识别它们相交的位置。下面是程序应该能够定位的一个视图:(黑线是磁带所在的位置,红点是相交的位置) Program view

    最后的游戏是让程序能够使用这些数据

    1. 知道有多少部分(在本例中是9)
    2. 知道截面的位置并在每个截面周围创建一个边界框

    像这样的视觉效果: Image with cropped section bounding boxes

    opencv有面部检测和特征检测,所以像这样的静态图像应该是相当可能的。实现这一目标的最佳方法是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Fred Guth    6 年前

    做你想做的事有很多方法。

    一种是使用sift:

    https://docs.opencv.org/3.3.0/da/df5/tutorial_py_sift_intro.html

    您需要使用关键点检测,例如:

    sift = cv2.SIFT()
    kp = sift.detect(img,None)
    

    您可以检查以下几点是否正确: img2=cv2.绘制关键点(kp)

    然后需要使用cv2.boundingrect

    box = cv2.boundingRect(kp)
    

    如果标记的颜色与图像的其他颜色不同,则只需制作颜色过滤器即可找到点。