文档

将航拍照片注册到正射影像

这个例子展示了如何将航拍照片注册为正射影像。同一场景的两幅图像只有在同一坐标系下才能直接比较。图像配准是将一幅图像转换为另一幅图像坐标系的过程。

步骤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.pngconcordorthophoto.png

这个话题有用吗?