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

Чтобы выбрать контрольные точки в интерактивном режиме, откройте инструмент Control Point Selection при помощи 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