Укажите воздушную фотографию к цифровой ортофотографии

Этот пример показывает, как использовать отображение контрольной точки, чтобы выполнить регистрацию изображений.

Считайте демонстрационные изображения и отобразите их.

orthophoto = imread('westconcordorthophoto.png');
figure, imshow(orthophoto)
unregistered = imread('westconcordaerial.png');
figure, imshow(unregistered)

В этом примере фиксированным изображением является westconcordorthophoto.png, MassGIS геоуказал ортофотографию. Это - панхроматическое (полутоновое) изображение, предоставленное географической информационной системой Массачусетса (MassGIS). Изображение было ортоисправлено, чтобы демонтировать камеру, перспективу и вспомогательные искажения через специализированный процесс преобразования изображений. Изображение также геоуказывается (и геокодируется): столбцы и строки цифрового ортофото изображения выравниваются к осям системы Координаты на плоскости состояния Массачусетса. Каждый пиксельный центр соответствует определенному географическому положению, и каждый пиксель является 1-метровым квадратом в модулях карты.

Движущимся изображением является westconcordaerial.png, цифровая воздушная фотография, предоставленная mPower3/Emerge. Это - видимо-цветное изображение RGB. Изображение геометрически не исправляется: это включает перспективу камеры, ландшафт и облегчение создания, внутреннее (линза) искажения, и это не имеет никакого конкретного выравнивания с землей.

Пример читает оба изображения в рабочую область. Функция cpselect принимает изображения из рабочей области или векторов символов, задающих путь к файлу для изображений.

Выберите пары соответствующих контрольных точек в обоих изображениях, с помощью инструмента Control Point Selection. Контрольные точки являются ориентирами, которые можно найти в обоих изображениях, как дорожное пересечение или природный объект. Чтобы запустить этот инструмент, введите cpselect, задав в качестве аргументов перемещение и зафиксированные изображения.

cpselect(unregistered, orthophoto)

Сохраните пары контрольной точки в рабочую область. В Инструменте Выбора Контрольной точки кликните по меню File и выберите опцию Export Points to Workspace.

Например, следующий набор контрольных точек в движущемся изображении представляют пространственные координаты. Левый столбец перечисляет x-координаты, и правый столбец перечисляет y-координаты.

moving_points =

  118.0000   96.0000
  304.0000   87.0000
  358.0000  281.0000
  127.0000  292.0000

Можно опционально подстроить размещение пары контрольной точки с помощью функции cpcorr. Чтобы использовать взаимную корреляцию, изображения должны быть в рабочей области, и функции в двух изображениях должны быть в той же шкале и иметь ту же ориентацию. Они не могут вращаться друг относительно друга. Поскольку изображение Согласия вращается относительно фиксированного изображения, cpcorr не может настроить контрольные точки.

Задайте тип преобразования и выведите его параметры, с помощью fitgeotrans. fitgeotrans является соответствующей данным функцией, которая определяет преобразование, которое приносит изображение в выравнивание, на основе геометрического отношения контрольных точек. fitgeotrans возвращает параметры в объекте геометрического преобразования.

mytform = fitgeotrans(movingPoints, fixedPoints, 'projective');
mytform = 

  projective2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

Когда вы используете fitgeotrans, необходимо задать тип преобразования, которое вы хотите выполнить. Функция fitgeotrans может вывести параметры для нескольких типов преобразований. Выберите, какое преобразование подходит для типа искажения, существующего в движущемся изображении. Изображения могут содержать больше чем один тип искажения.

Преобладающее искажение в воздушном изображении Западного Согласия (движущееся изображение) следует из перспективы камеры. При игнорировании облегчения ландшафта, которое незначительно в этой области, регистрация изображений может исправить для перспективного искажения камеры при помощи проективного преобразования. Проективное преобразование также вращает изображение в выравнивание с системой координат карты, лежащей в основе фиксированного цифрового ортофото изображения.

Преобразуйте движущееся изображение (unregistered), чтобы принести его в выравнивание с фиксированным изображением. Вы используете imwarp, чтобы выполнить преобразование, передавая его движущееся изображение и объект геометрического преобразования, возвращенный fitgeotrans. imwarp возвращает преобразованное изображение.

registered = imwarp(unregistered, mytform);

Следующие данные показывают преобразованное изображение, прозрачно наложенное на фиксированном изображении, чтобы показать результаты регистрации.

Смотрите также

| | |

Похожие темы