Регистрация воздушной фотографии к ортофотографии

В этом примере показано, как указать воздушную фотографию к ортофотографии. Два изображения той же сцены могут только быть сравнены непосредственно, если они находятся в той же системе координат. Регистрация изображений является процессом преобразования одного изображения в систему координат другого изображения.

Шаг 1: считайте изображения

Изображение westconcordorthophoto.png ортофотография, которая была уже указана к земле. Изображение westconcordaerial.png не зарегистрировано, когда это было взято из самолета и искажено относительно ортофотографии.

unregistered = imread('westconcordaerial.png');
imshow(unregistered)
text(size(unregistered,2),size(unregistered,1)+15, ...
    'Image courtesy of mPower3/Emerge', ...
    'FontSize',7,'HorizontalAlignment','right');

ortho = imread('westconcordorthophoto.png');
imshow(ortho)
text(size(ortho,2),size(ortho,1)+15, ...
    'Image courtesy of Massachusetts Executive Office of Environmental Affairs', ...
    'FontSize',7,'HorizontalAlignment','right');

Шаг 2: загрузите и добавьте контрольные точки

Четыре пары контрольных точек были уже выбраны. Загрузите эти точки из MAT-файла. Если вы хотите возобновить эти точки, перейдите к Шагу 3: Выведите Геометрическое преобразование.

load westconcordpoints

Опционально, отредактируйте или добавьте к предварительно выбранным точкам с помощью Инструмента Выбора Контрольной точки (cpselect). cpselect функция помогает вам выбрать пары соответствующих контрольных точек. Контрольные точки являются ориентирами, которые можно найти в обоих изображениях, как дорожное пересечение или природный объект. Незарегистрированное изображение является изображением RGB, но cpselect только берет полутоновые изображения, таким образом, вы передадите его одна плоскость изображения RGB.

cpselect(unregistered(:,:,1),'westconcordorthophoto.png',movingPoints,fixedPoints)

Сохраните контрольные точки путем выбора меню File, затем Точки сохранения к опции Рабочей области. Сохраните точки, перезаписав переменные movingPoints и fixedPoints.

Шаг 3: выведите геометрическое преобразование

Поскольку незарегистрированное изображение было взято из самолета, и топография является относительно плоской, вероятно, что большая часть искажения является проективной. fitgeotrans найдет параметры проективного искажения что лучшие подгонки случайный movingPoints и fixedPoints вы выбрали.

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

Шаг 4: преобразуйте незарегистрированное изображение

Даже при том, что точки были выбраны на одной плоскости незарегистрированного изображения, можно преобразовать целое изображение RGB. imwarp применит то же преобразование к каждой плоскости. Обратите внимание на то, что спецификация 'OutputView' гарантирует, что зарегистрированное изображение будет выровнено для поэлементного сравнения с ортофотографией.

Rfixed = imref2d(size(ortho));
registered = imwarp(unregistered,t_concord,'OutputView',Rfixed);

Шаг 5: просмотрите зарегистрированное изображение в контексте ортофотографии

imshowpair(ortho,registered,'blend')

Сравните визуально, как хорошо зарегистрированное изображение накладывает на ортофотографии. Попытайтесь возвращаться к Шагу 2: Выберите Control Points и использование больше чем четырех пар точек. Результаты лучше? Что, если точки собраны в группу вместе?

Если вы хотите экспериментировать с увеличенными изображениями, выполните шаги выше, чтобы указать concordaerial.png к concordorthophoto.png.

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

| | |

Похожие темы