使用空间引用注册两个图像以增强显示
本例展示了如何在配准中使用空间引用对象来理解两幅图像之间的空间关系,并有效地显示它们。这个例子将其中一个图像(称为运动图像)与另一个图像(称为固定图像)对齐。
阅读同一场景的两张稍微不对齐的图像。
固定= imread(“westconcordorthophoto.png”);移动=不动“westconcordaerial.png”);
显示移动的(未注册的)图像。
iptsetpref (ImshowAxesVisible =“上”imshow(移动)text(size(移动,2),size(移动,1)+35,“图片由mPower3/Emerge提供”,...字形大小= 7,HorizontalAlignment =“正确”)
加载一个MAT文件,其中包含固定和移动图像的预选控制点。
负载westconcordpoints
对控制点对拟合投影几何变换fitgeotform2d
函数。
tform = fitgeotform2d(move points,fixedPoints,“射影”);
属性所必需的转换移动
图像与固定图像,使用imwarp
函数。本例使用可选的“FillValues”
参数指定一个填充值(白色),这将有助于在转换后的运动图像上显示固定图像时检查配准。请注意,经过几何变换的运动图像的全部内容都已呈现,现在称为注册
.还要注意,没有空白行或空白列。
注册= imwarp(移动,tform,FillValues=255);imshow(注册)
叠加变换后的图像,注册
,在固定图像上使用imshowpair
函数。请注意这两个图像是如何错配的。这是因为imshowpair
假设图像都在默认的内在坐标系中。接下来的步骤提供了两种方法来解决这个显示问题。
imshowpair(固定、登记,“混合”);
约束变换后的图像,注册
,到相同的行数和列数,以及相同的空间限制,作为固定图像。这确保已注册的图像看起来与固定图像已注册,但将外推超出固定图像范围的已注册图像区域将被丢弃。为此,创建一个默认空间引用对象,该对象指定固定图像的大小和位置,并使用“OutputView”
的名称-值参数imwarp
创建一个有约束的重采样图像registered1
.在固定映像上显示已注册映像。在这个视图中,图像似乎已注册,但并非所有未注册的图像都可见。
Rfixed = imref2d(大小(固定));registered1 = imwarp(移动,tform,FillValues=255,OutputView=Rfixed);registered1 imshowpair(固定,“混合”);
作为替代,使用optionalimwarp
语法,该语法返回输出空间引用对象,该对象指示完整转换图像在与固定图像相同的默认固有坐标系中的位置。在固定映像上显示已注册映像,并注意现在可以看到完整的已注册映像。
[registered2,Rregistered] = imwarp(移动,tform,FillValues=255);imshowpair(固定、Rfixed registered2 Rregistered,“混合”)
清理。
iptsetpref (“ImshowAxesVisible”,“关闭”)