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