识别图像目标线

时间:2018-06-06 17:58:11

标签: python image opencv crop image-recognition

我正在尝试编写一个查看图像的脚本,查看图像上的线条,并在线条周围创建边界框。这就是我在说的......

我有这个图片: Image of Setup

我正在尝试使用脚本智能地裁剪每个部分。我想出的最好的想法是在每个部分周围都有彩色胶带,如下所示: Image with tape

使用彩色胶带给出这个图像,程序应该能够找到彩色线条并识别它们相交的位置。这是程序应该能够定位的视觉效果:(黑色线条是胶带的位置,红色点是交叉位置) Program view

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

  1. 知道有多少部分(在本例中为9)
  2. 知道各个部分的位置并在每个部分周围创建一个边界框
  3. 看起来像这样: Image with cropped section bounding boxes

    OpenCV具有面部检测和特征检测功能,因此具有静态图像的功能应该是相当可行的。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

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

一个是使用筛选:

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

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

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

您可以检查点是否正确:     img2 = cv2.drawKeyPoints(kp)

然后你需要使用cv2.boundingRect

box = cv2.boundingRect(kp)

如果您的标记与图像的其余部分颜色不同,则只需制作一个颜色过滤器即可找到这些点。