Зарегистрируйте два изображения, используя пространственные ссылки для улучшения отображения

Этот пример показывает, как использовать пространственные объекты привязки, чтобы понять пространственное соотношение между двумя изображениями в регистрации изображений и эффективно их отображать. Этот пример приносит одно из изображений, называемое moving изображение, в выравнивание с другим изображением, называемое fixed изображение.

Считайте два изображения одной и той же сцены, которые слегка несовпадают.

fixed = imread('westconcordorthophoto.png');
moving = imread('westconcordaerial.png');

Отображение движущееся (незарегистрированное) изображение.

iptsetpref('ImshowAxesVisible','on')
imshow(moving)
text(size(moving,2),size(moving,1)+30, ...
    'Image courtesy of mPower3/Emerge', ...
    'FontSize',7,'HorizontalAlignment','right');

Figure contains an axes. The axes contains 2 objects of type image, text.

Загрузите MAT-файл, содержащий предварительно выбранные контрольные точки для fixed и moving изображения и создайте геометрическую подгонку преобразования к контрольным точкам, используя fitgeotrans .

load westconcordpoints
tform = fitgeotrans(movingPoints, fixedPoints, 'projective');

Выполните преобразование, необходимое для регистрации moving изображение со fixed изображение, использование imwarp . В этом примере используются дополнительные 'FillValues' параметр для задания значения заливки (белого), который поможет при отображении fixed изображение по преобразованному moving изображение, чтобы проверить регистрацию. Заметьте, что полное содержимое геометрически преобразованного moving изображение присутствует, теперь называется registered . Также обратите внимание, что нет пустых строк или столбцов.

registered = imwarp(moving, tform,'FillValues', 255);
figure, imshow(registered);

Figure contains an axes. The axes contains an object of type image.

Наложите преобразованное изображение, registered , по fixed изображение, использование imshowpair . Заметьте, как эти два изображения выглядят неправильно. Это происходит потому, что imshowpair принимает, что оба изображения находятся в внутренней системе координат по умолчанию. Следующие шаги обеспечивают два способа устранить эту проблему отображения.

figure, imshowpair(fixed,registered,'blend');

Figure contains an axes. The axes contains an object of type image.

Ограничьте преобразованное изображение, registered , тому одинаковому числу строк и столбцов и тем же пространственным пределам, что и fixed изображение. Это гарантирует, что зарегистрированное изображение появляется зарегистрированным с фиксированным изображением, но области зарегистрированного изображения, которые будут экстраполироваться за пределы фиксированного изображения, отбрасываются. Для этого создайте пространственный объект привязки по умолчанию, которая задает размер и расположение fixed изображение и используйте imwarp's 'OutputView' параметр для создания ограниченного повторно дискретизированного изображения registered1. Отобразите зарегистрированное изображение на фиксированном изображении. В этом представлении изображения, по-видимому, были зарегистрированы, но видны не все незарегистрированные изображения.

Rfixed = imref2d(size(fixed));
registered1 = imwarp(moving,tform,'FillValues', 255,'OutputView',Rfixed);
figure, imshowpair(fixed,registered1,'blend');

Figure contains an axes. The axes contains an object of type image.

В качестве альтернативы используйте дополнительный imwarp синтаксис, который возвращает выходной пространственный объект привязки, который указывает положение полного преобразованного изображения в той же внутренней системе координат по умолчанию, что и fixed изображение. Отобразите зарегистрированное изображение на фиксированном изображении и отметьте, что теперь полный registered изображение отображается.

[registered2, Rregistered] = imwarp(moving, tform,'FillValues', 255);
figure, imshowpair(fixed,Rfixed,registered2,Rregistered,'blend');

Figure contains an axes. The axes contains an object of type image.

Очистить.

iptsetpref('ImshowAxesVisible','off')
Для просмотра документации необходимо авторизоваться на сайте