主要内容

使用控制点注册带有投影失真的图像

这个示例展示了如何通过选择两个图像的公共控制点并推断一个使控制点对齐的几何变换来注册两个图像。

读取图像

阅读图片westconcordorthophoto.png进入工作区。这张图片是一张已经被登记在地面上的正射影像。

Ortho = imread(“westconcordorthophoto.png”);imshow(正的)文本(大小(邻位的,2),大小(邻位的,1)+ 15,...图片由马萨诸塞州环境事务执行办公室提供...字形大小= 7,HorizontalAlignment =“正确”);

图中包含一个轴对象。坐标轴对象包含两个图像、文本类型的对象。

阅读图片westconcordaerial.png进入工作区。这张照片是从飞机上拍摄的,相对于正射影像来说是扭曲的。由于未配准的图像是从远处拍摄的,地形相对平坦,很可能大部分失真是投影的。

未注册= imread(“westconcordaerial.png”);imshow(未注册)文本(大小(未注册,2),大小(未注册,1)+ 15,...“图片由mPower3/Emerge提供”...字形大小= 7,HorizontalAlignment =“正确”);

图中包含一个轴对象。坐标轴对象包含两个图像、文本类型的对象。

选择控制点对

要以交互方式选择控制点,请使用控件打开控制点选择工具cpselect函数。控制点是你在两张图片中都能找到的地标,比如十字路口或自然景观。选择至少四对控制点,以便cpselect可以对控制点拟合一个射影变换。选择了相应的移动点和固定点后,关闭工具返回工作空间。

[mp,fp] = cpselect(unregistered,ortho,Wait=true);

推断几何变换

,求出能使运动点和不动点最佳对齐的射影变换的参数fitgeotform2d函数。

T = fitgeotform2d(mp,fp,“射影”
t = projtform2d属性:维度:2 A: [3×3 double]

转换未配准图像

若要将转换应用于未配准的航拍图像,请使用imwarp函数。属性指定转换后图像的大小和位置与ortho图像的大小和位置匹配OutputView名称-值参数。

Rfixed = imref2d(size(ortho));注册= imwarp(unregistered,t,OutputView=Rfixed);

通过将变换后的图像叠加在原始正射影像上,可以看到配准的结果。

imshowpair(邻位的注册,“混合”

图中包含一个轴对象。axis对象包含一个image类型的对象。

另请参阅

|||

相关的话题