这个例子展示了如何在图像配准中使用空间引用对象来理解两幅图像之间的空间关系,并有效地显示它们。这个例子带来了其中一个图像,叫做移动
图像,使其与另一个图像对齐,称为固定
的形象。
阅读同一场景的两个图像,稍微不对齐。
固定= imread (“westconcordorthophoto.png”);移动= imread (“westconcordaerial.png”);
显示移动的(未注册的)图像。
iptsetpref (“ImshowAxesVisible”,“上”) imshow(移动)文本(大小(移动,2),大小(移动,1)+ 30,...“图片由mPower3/Emerge提供”,...“字形大小”7“HorizontalAlignment”,“对”);
加载一个mat -文件,该文件包含预先选定的控制点固定
和移动
并创建一个适合于控制点的几何变换,使用fitgeotrans
.
负载westconcordpointstform = fitgeotrans(movingPoints, fixedPoints,“射影”);
执行注册所需的转换移动
图像的固定
图像,使用imwarp
.这个例子使用了可选的“FillValues”
参数指定填充值(白色),这将有助于显示固定
变换后的图像移动
图像,检查注册。注意几何变换的全部内容移动
图像出现,现在调用注册
.还要注意,没有空行或空列。
(移动,变形,变形)“FillValues”, 255);图中,imshow(注册);
覆盖变换后的图像,注册
,在固定
图像,使用imshowpair
.注意这两个图像是如何出现错误的。这是因为imshowpair
假设图像都在默认的固有坐标系中。下面的步骤提供了两种方法来纠正这个显示问题。
图,imshowpair(固定的,注册,“混合”);
约束变换后的图像,注册
的行数和列数,以及相同的空间限制固定
的形象。这确保了已配准图像与固定图像进行了配准,但已配准图像中超出固定图像范围的区域将被丢弃。要做到这一点,请创建一个默认空间引用对象,该对象指定固定
形象,并使用imwarp的
“OutputView”
参数创建约束的重采样图像registered1
.在固定图像上显示注册的图像。在这个视图中,图像似乎已经注册,但并不是所有未注册的图像都可见。
Rfixed = imref2d(大小(固定));tform registered1 = imwarp(移动,“FillValues”, 255,“OutputView”, Rfixed);图,imshowpair (registered1固定,“混合”);
作为替代,使用可选选项imwarp
返回输出空间引用对象的语法,该对象指示完全转换后的图像在与固定
的形象。在固定的图像上显示注册的图像,注意现在完整的注册
图像是可见的。
= imwarp(移动,变形,变形)“FillValues”, 255);图,imshowpair(固定,Rfixed、registered2 Rregistered,“混合”);
清理。
iptsetpref (“ImshowAxesVisible”,“关闭”)