В этом примере показано, как зарегистрировать два изображения путем выбора управляющих точек, общих для обоих изображений, и вывода геометрического преобразования, которое выравнивает управляющие точки.
Прочитать изображение westconcordorthophoto.png в рабочую область. Это изображение - ортофото, которое уже зарегистрировано на земле.
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');

Прочитать изображение 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');

Чтобы выбрать контрольные точки в интерактивном режиме, откройте инструмент «Выбор контрольной точки» с помощью cpselect функция. Контрольные точки - это ориентиры, которые можно найти на обоих изображениях, таких как пересечение дорог или естественный элемент. Выберите не менее четырех пар контрольных точек, чтобы cpselect может подгонять проективное преобразование к контрольным точкам. После выбора соответствующих движущихся и фиксированных точек закройте инструмент, чтобы вернуться в рабочее пространство.
[mp,fp] = cpselect(unregistered,ortho,'Wait',true);
Найдите параметры проективного преобразования, которое наилучшим образом выравнивает движущуюся и фиксированную точки, используя fitgeotrans функция.
t = fitgeotrans(mp,fp,'projective');Чтобы применить преобразование к незарегистрированному воздушному изображению, используйте imwarp функция. Укажите, что размер и положение преобразованного изображения соответствуют размеру и положению орто-изображения, используя аргумент пары имя-значение OutputView.
Rfixed = imref2d(size(ortho));
registered = imwarp(unregistered,t,'OutputView',Rfixed);Результат регистрации можно увидеть, наложив преобразованное изображение на исходный ортофото.
imshowpair(ortho,registered,'blend')
cpcorr | cpselect | cpstruct2pairs | fitgeotrans