Я сделал 2 изображения с точкой пересечения, и теперь я пытаюсь сравнить эти 2 изображения и выяснить, на какое расстояние и угол перемещены. Как я могу использовать MATLAB для этого? Большое тебе спасибо!
Сравнение точки пересечения между двумя изображениями в MATLAB
Ответы (3)
Выравнивание двух изображений одной и той же сцены вызывается регистрация изображения. Если у вас есть доступ к Image Processing Toolbox, вы можете найти там ряд функции помочь вам .
Взгляните на эти демонстрации регистрации изображений.
Если эти черные линии всегда есть на изображениях и они почти идеально прямые (не превращаются в кривые), лучшим методом будет использование Преобразование Хафа или Преобразование Радона (вид различных способов думать о том, чтобы сделать одно и то же), чтобы найти только две черные линии, а затем сравнить их положение.
Сначала вы инвертируете изображения, чтобы линии были ярко-белыми (большие значения), а затем выполняете преобразование Хафа. На выходе для каждого изображения будут две яркие белые точки, по которым можно делать пиковое обнаружение. Координата каждого пика сообщает вам угол и смещение линии.
Я не делал этого в MATLAB, но вижу ряд примеров и документации:
- Демонстрация преобразования Хафа для прямых линий ( вам не нужно делать шаг обнаружения края)
hough
,houghlines
иhoughpeaks
функции
Взаимная корреляция (Википедия называет ее фазовой корреляцией) не будет работать, если изображения повернуты. Однако существует связанный метод, основанный на логарифмически-полярных координатах это будет работать независимо от поворота, масштаба, сдвига и перемещения.
Этот метод будет лучшим, если вам нужно сопоставить любые произвольные изображения. Сопоставление известных форм или темных линий лучше выполнять другими методами.