Подгонка контура вокруг ярких предметов - PullRequest
2 голосов
/ 13 июля 2020

У меня есть изображение с белыми стрелками и контуром 1 такая стрелка. Смотрите здесь: введите описание изображения здесь

Теперь я хочу повернуть и перенести этот контур так, чтобы он подходил как можно лучше. В этом конкретном c случае цель состоит в том, чтобы соответствовать синему контуру вокруг нижней стрелки.

Мой текущий подход - выбрать растр с координатами (x, y). По каждой из этих координат я вращаю контур в 360 направлениях, каждый раз измеряя суммарные значения пикселей, содержащихся в этом контуре. Положение и угол с наибольшим значением затем выбираются как наиболее вероятное положение и угол для правильной подгонки этого контура.

Однако это довольно медленная процедура, и качество сильно зависит от плотности растра. Есть ли лучший способ сделать это?

Общие советы приветствуются, как и любые пакеты / код в python с примерами того, как это сделать.

1 Ответ

0 голосов
/ 13 июля 2020

Вы можете использовать концепции сопоставления шаблонов, такие как нормализованная кросс-корреляция, вместо измерения суммированных значений пикселей. Он инвариантен к локальной средней интенсивности и контрасту, но все равно медленный.

Другой подход - это методы извлечения признаков, такие как SURF, SIFT и т. Д. c. Создайте бинарное изображение из контура. SIFT найдет для вас точное положение с нужным углом и даже в масштабе. Вы можете найти эти алгоритмы в opencv- python. Например эта ссылка .

...