将航拍照片注册到正射影像
这个例子展示了如何将航拍照片注册为正射影像。同一场景的两幅图像只有在同一坐标系下才能直接比较。图像配准是将一幅图像转换为另一幅图像坐标系的过程。
步骤1:读取图像
图像westconcordorthophoto.png
是一个已经注册到地面的正射影像。图像westconcordaerial.png
未注册,因为它是从飞机上拍摄的,相对于正射影像是扭曲的。
未注册= imread(“westconcordaerial.png”);imshow(未注册)文本(大小(未注册,2),大小(未注册,1)+ 15,...图片由mPower3/Emerge提供,...“字形大小”7“HorizontalAlignment”,“对”);
Ortho = imread(“westconcordorthophoto.png”);imshow(正的)文本(大小(邻位的,2),大小(邻位的,1)+ 15,...图片由马萨诸塞州环境事务执行办公室提供,...“字形大小”7“HorizontalAlignment”,“对”);
步骤2:加载和添加控制点
已经选好了四对控制点。从mat文件中加载这些点。如果你想继续这些观点,请转到步骤3:推断几何变换。
负载westconcordpoints
亦可使用控制点选择工具编辑或添加预先选定的点(cpselect
).cpselect
帮助您选择对应的控制点对。控制点是你在两幅图像中都能找到的地标,比如十字路口或自然景观。未注册的图像是RGB图像,但是cpselect
只需要灰度图像,所以你将传递给它一个平面的RGB图像。
cpselect(未注册(:,:1),“westconcordorthophoto.png”,…
movingPoints定点)
控件保存控制点文件菜单,然后保存点到工作区选择。保存这些点,重写变量movingPoints
而且定点
.
步骤3:推断几何变换
因为我们知道未配准的图像是从飞机上拍摄的,地形相对平坦,很可能大部分失真是投影的。fitgeotrans
将找到投影失真的参数,最适合你选择的杂散移动点和固定点。
t_concord = fitgeotrans(movingPoints,fixedPoints,“射影”);
步骤4:转换未注册的图像
即使点是在未注册图像的一个平面上选取的,您也可以转换整个RGB图像。imwarp
将对每个平面应用相同的变换。注意,'OutputView'的规范确保注册的图像将与正射相图进行元素级比较。
Rfixed = imref2d(size(ortho));注册= imwarp(unregistered,t_concord,“OutputView”, Rfixed);
步骤5:在正射影像的上下文中查看注册图像
imshowpair(邻位的注册,“混合”)
从视觉上比较配准图像在正射影像上的覆盖情况。试着回到第二步:选择控制点,并使用超过四对控制点.结果更好吗?如果这些点聚集在一起呢?
如果您想尝试使用更大的图像,请按照上面的步骤进行注册concordaerial.png
来concordorthophoto.png
.