Я использую сопоставление шаблонов OpenCV для сценария соответствия промышленному шаблону. Как определить угол между моим шаблоном и отображаемым изображением? Моя подпрограмма использует matchTemplate -> normalize -> minMaxLoc. Может кто-нибудь, пожалуйста, дайте мне идею или пример кода о том, как достичь этого? Спасибо.Согласование шаблонов OpenCV - Как определить угол совпадающего шаблона
1
A
ответ
2
Подбор шаблонов, реализованный в OpenCV, не является инвариантным к вращению. Он предназначен только для перевода. Таким образом, все, что связано с очень маленьким вращением, не будет обнаружено [надежно] путем сопоставления шаблонов вообще.
Вам потребуется альтернативный подход, если вам необходимо учитывать ротацию.
Некоторые опции включают в себя:
- Попытка несколько вращений шаблона;
- Если вы знаете ось вращения, то вы можете использовать лог-полярное представление (как предлагает @rayryeng в комментариях)
- Использовать дескриптор с вращательной инвариантностью.
Попробуйте использовать шаблон соответствия Log-Polar. Он учитывает ротацию. Этот пост в DSP StackExchange может дать некоторое представление: http://dsp.stackexchange.com/questions/6194/scale-and-rotation-invariant-template-matching – rayryeng