Сопоставление шаблонов инвариантов вращения и масштаба в OpenCV [дубликат]
Возможный дубликат:
соответствие шаблону масштабирования и вращения
У меня есть шаблон изображения в оттенках серого , с белым фоном и черной фигурой над ним. У меня также есть несколько подобных тестовых изображений, которые различаются по вращению и форме. Тестовые изображения не совпадают с шаблоном, но они похожи.
Я хочу сравнить эти два изображения и посмотреть , соответствует ли шаблон, наиболее похож на любой из тестовых изображений. Никаких искажений , никакого шума. и никаких других дефектов в изображениях. Существуют ли какие-либо учебные пособия по этой теме ?
2 ответа:
Сначала попробуйте самый простой метод.
Если я вас правильно понял, у вас есть какая - то модель-черная фигура на белом фоне. Вы можете рассматривать его как каплю-найти его центр масс и вращение, вычисляя угол главных осей-посмотрите там.
Затем вы должны сегментировать фигуры из других изображений. Затем попробуйте найти наилучшую соответствующую форму с помощью функции matchShapes () - смотрите там , как ее использовать.
Функция MatchShapes() делает масштаб и вращение инвариантное соответствие. Наименьшее совпадение фигур приводит к лучшему совпадению.
Расширяя свой вопрос, вы можете найти центр масс и вращение наиболее подходящего большого двоичного объекта и найти вращение, масштаб и смещение между вашей моделью и соответствующим изображением.
Это довольно сложная тема. Обычно у вас есть такие опции, как обобщенное преобразование Хоу и нормализованная корреляция оттенков серого для работы с шаблоном соответствия. Проблема в том, что они не инвариантны к масштабу или вращению в их простейшем выражении. Вы должны сосредоточиться на проблеме в то время, обобщенное решение является сложным. Я рекомендую сначала простое сопоставление шаблонов. Затем добавьте "хаки" для вращения и масштабирования. Для вращения вы можете понизить масштаб (низкое разрешение соответствия) и шаблон соответствия с повернутые модели. Это также может иметь дело с масштабом.