Есть ли алгоритм, в котором я могу сопоставить масштаб и вращение rotateRect в opencv

У меня есть шаблонное изображение с белым фоном и черной формой над ним. У меня также есть изображение, которое имеет аналогичную форму, но с другим поворотом и масштабом, а также имеет некоторый шум на изображении. Как показано на рисунке ниже! введите описание изображения здесь Я хочу использовать rotateRect, чтобы получить Rect, который включает форму шаблона, и использовать шаблон, чтобы найти rotateRect который включает в себя целевую резкость. Я знаю, что matchTemplate() не подходит, когда объект вращается или масштабируется в сцене. Поэтому я пытаюсь использовать функцию matchShapes(). Но функция matchShapes() используется для сравнения с двумя контурами. форма на целевом изображении, форма смешана с шумом, и я не могу сегментировать целевую форму и шум. Я хочу получить rotateRect, который включает только целевую форму, а не шумовую каплю. Но когда я использую findContours в целевом изображении, контур, который я нашел, будет включать целевую форму и шум. В результате я не могу
найти цель shape.Как я могу использовать шаблон rotateRect, чтобы найти цель rotateRect в opencv? Можете ли вы поделиться своей идеей. Заранее спасибо!!


person GKG DTH    schedule 18.07.2015    source источник


Ответы (1)


Принимая во внимание сценарий, вы можете попробовать сегментировать изображение на основе цвета, так как ваш объект интереса черный, а шум синего цвета. Затем вы можете перейти к подходу на основе контуров для поиска вашей цели. Вы можете обратиться по этой ссылке для реализации алгоритма OpenCV:Watershed

Вы также можете обратиться к этой ссылке SO Coca-Cola может признание.

person SilverSurfer    schedule 18.07.2015
comment
Если шум черный, как я могу это сделать? - person GKG DTH; 19.07.2015