Распознавание целевых линий изображения - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь написать скрипт, который просматривает изображение, просматривает линии на изображении и создает ограничивающие рамки вокруг линий.Вот о чем я говорю ...

У меня есть это изображение: Image of Setup

Я пытаюсь найти способ интеллектуального обрезания каждой секциииспользуя скрипт.Самая лучшая идея, которую я придумал, заключалась в том, чтобы обвести каждую из секций цветной лентой следующим образом: Image with tape

Учитывая это изображение с цветной лентой, программа должна быть в состоянии найтицветные линии и определить, где они пересекаются.Вот изображение того, что программа должна быть в состоянии найти: (Черные линии - это место, где лента, красные точки - это пересекающиеся позиции) Program view

Конечная игра здесьчтобы программа могла использовать эти данные для

  1. Знать, сколько существует секций (в данном случае 9)
  2. Знать, где находятся секции, и создать ограничивающий прямоугольник вокруг каждогоone

Визуально что-то вроде этого: Image with cropped section bounding boxes

OpenCV имеет распознавание лиц и функций, поэтому что-то подобное со статическим изображением должно быть вполне возможным.Каков наилучший метод для достижения этой цели?

1 Ответ

0 голосов
/ 07 июня 2018

Есть много способов сделать то, что вы хотите.

Одним из них является использование 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.drawKeyPoints (kp)

Тогда вам нужно будет использовать cv2.boundingRect

box = cv2.boundingRect(kp)

Если ваш маркер имеет другой цвет, чем остальная часть изображения, вам нужно только сделать цветной фильтр, чтобы найти точки.

...