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