Какой алгоритм можно использовать для определения наличия нескольких полос? - PullRequest
2 голосов
/ 21 февраля 2011

Использование python, который может быть лучшим алгоритмом или лучшей стратегией для обнаружения наличия цветных полос, как на изображении? Изображение сканируется и обрезается, проблема в том, что кадрирование не является точным, и я не могу использовать элемент управления, который использует декартовы координаты для определения наличия линий. Полосы могут присутствовать или нет.

image

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

В вашем распоряжении несколько вариантов:

  • Если полосы будут одинакового размера , а их ориентация известна , то вы можете использовать взаимную корреляцию (с работающим источником Python ). Ваше шаблонное изображение может представлять собой одну полосу или несколько полос, если вы знаете количество полос и их интервал .
  • В общем, вы могли бы пойти с морфологической обработкой изображения и искать прямоугольники. Сначала вам нужно пороговое изображение (используя метод Оцу или какой-то эмпирически определенный порог), а затем выполнить определение контура. Вот пример , который делает нечто подобное, но для эллипсов - тривиально изменить его для поиска прямоугольников. На этот раз источник в C, но он использует OpenCV, как в первом примере, поэтому он должен быть тривиальным для порта
  • Существуют и другие подходы, такие как обнаружение краев и анализ Фурье, но я действительно думаю, что первых двух будет более чем достаточно для вас.
1 голос
/ 21 февраля 2011

enter image description here

...