Перейти к содержимому
Compvision.ru
Sergey777

cvMatchShapes

Recommended Posts

Всем привет! У меня задача найти объект на изображении. Использую cvMatchShapes и у меня часто получается что для совершенно не похожего визуально объекта результат меньше чем для похожего. Вот пример:

Объект который я хочу найти: post-6663-0-31468300-1375822259_thumb.jp

Изображение на котором хочу найти объект: post-6663-0-29946800-1375822268_thumb.jp

Моя прога выдает что прямоугольник более подходящий вариант. Кто знает как это пофиксить ? Границы получаю по Canny потом нахожу контуры cvFindContours, дальше cvMatchShapes

Исходный код: MatchShapes.cpp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

лучше используйте новый opencv интерфейс там можно подавать просто std::vector, а не CvSeq.

выведите для дебага контуры изображения может они неправильно находятся.

еще может функция cvMatchShapes выдает не мин, а макс, хотя врядли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Функций cvMatchShapes возвращает минимум, если контуры совпадают пиксель в пиксель она возвращает 0. Контуры проверял отличаются не значительно, разница в 5 - 9 пикселей, соотношения линий контура в принципе подходят, по крайней мере разница с прямоугольником большая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×