Сопоставление шаблона кривой с краями изображения

У меня есть целевое изображение для поиска кривой вдоль ее краев и шаблонное изображение, содержащее кривую. Чего мне нужно добиться, так это найти наилучшее соответствие кривой в изображении шаблона в целевом изображении и на основе оценки выяснить, есть ли совпадение или нет. Это также включает вращение и изменение размера кривой. Целевое изображение может быть выходом детектора Canny Edge, если это упрощает задачу.

Я рассматриваю возможность использования OpenCV (с помощью Python или Processing/Java или, если они имеют ограниченный доступ к необходимым функциям, то с помощью C ), чтобы сделать вещи практичными и эффективными, однако не смог выяснить, могу ли я использовать какие-либо функции (или их комбинация )в OpenCV, которые можно использовать для выполнения этой работы. Я читал документацию OpenCV и сначала подумал, что Contours может выполнить эту работу, однако все примеры показывают замкнутые формы, в отличие от моего случая, когда мне нужно сопоставить открытую кривую с частью края.

Итак, есть ли способ сделать это либо с помощью OpenCV, либо с помощью любого известного кода или алгоритма, который вы могли бы предложить?

Вот несколько изображений, иллюстрирующих проблему:

Template image containing the curve to be searched for

Input image to be searched for the template curve and to be matched to its edges; this can also be an edge-image, the output of a Canny Edge detector rather than the unprocessed input image

Resulting match - includes rotation and resizing

9
задан ali 31 July 2012 в 18:24
поделиться