我正在研究如何收集农场航拍图像(从直升机上以垂直方式收集的图像),我想将它们拼接在一起,以构建被覆盖区域的整张照片,然后我想运行分析。 我假设图像将带有[纬度,经度]坐标,以帮助我确定放置图像的位置。
为了解这项技术的问题,我尝试手工拼接从我后院某些样品区的手机拍摄的照片。我经历过边缘通常看起来不一样,因为相机从不同的侧面或角度看到它们。我猜这是图像中的失真,可能通过正射校正来修复(不完全确定)。 我很快创建了以下图片来帮助解释我的问题。
我的问题:
用于正整流的算法/技术是什么?
哪种工具最适合我的需求:opencv,或者处理或matlab或任何其他可以轻松帮助纠正图像和创建马赛克照片的工具?
在进行航空影像拼接和分析时应考虑哪些其他问题?
谢谢!
答案 0 :(得分:4)
首先,整改是某种翘曲,但不是你需要的。定期校正用于立体声,以确保匹配点位于同一行 - 而不是您的情况。正射矫正将透视投影扭曲成正交 - 再次不是你的情况。你不仅没有3D模型来计算这种扭曲,而且你也不需要它,因为你的透视扭曲可以忽略不计,你已经有了非常接近正射的图像(也就是当物体的尺寸与观察距离相比较小时)效果很小。)
在对齐两张图像时遇到的问题源于镜头之间的小相机旋转。要开始解决问题,您需要确保图像实际重叠30%。要阅读此内容,请参阅此book.
的第9章您需要检索使用单应法映射两个图像的常规图像拼接技术。请注意,这样做假定图像基本上是平的。要查找单应性,您可以先在一个图像中手动选择4个点,在另一个图像中手动选择4个匹配点,然后运行openCV函数findHomography()。请注意,需要重叠才能找到匹配项(在图片中没有重叠)。 warpPerspective()可以在找到homogrphy后为你扭曲图像。
答案 1 :(得分:3)
图像拼接通常假设相机中心在所有照片中都是固定的,并使用单应性来转换图像,使它们看起来是连续的。当固定摄像机中心假设不严格有效时,可能由于场景的3D而出现伪像/失真。如果相机中心与场景的浮雕相比移动了一小段距离,“无缝图像混合”技术可能足以模糊失真。
在更极端的情况下,需要进行正矫正。 正射矫正(Wikipedia entry)的任务是将从给定透视相机观察到的图像转换为正交({{ 3}})通常是垂直的观点。正交属性很有趣,因为它使几个图像的拼接更容易。来自维基百科的以下图片特别清晰(左边是正交投影或方向投影,右边是透视或中心投影):
正射校正的任务通常需要具有<场景的<3D>模型,以便将透视摄像机观察到的适当强度映射到它们相对于正交摄像机的位置。在航空/卫星图像的背景下,数字高程模型(DEM)通常用于此目的,但通常具有不包括人造结构(仅地球浮雕)的严重缺点。 NASA自由提供由Wikipedia entry(SRTM missions)获得的DEM。
另一种方法是,如果您在不同位置采集了两张图像,您可以尝试使用其中一种立体匹配技术进行3D重建,然后通过映射两幅图像来生成正射校正图像。第三个正交和垂直相机。
OpenCV为此目的有几个有趣的功能(例如立体声重建,图像映射功能等),并且可能更适合密集使用。 Matlab可能也有一些有趣的功能,可能更适合快速测试。
答案 2 :(得分:1)
“用于正整流的算法/技术是什么?
如果您想要对这些技术有一个很好的概述,那么Hartley&amp; Co.的书“计算机视觉中的多视图几何”。 Zisserman可能是一个很好的起点:http://www.robots.ox.ac.uk:5000/~vgg/hzbook/
Andrew Zisserman还在www.robots.ox.ac.uk/~az/tutorials/上提供了一些教程,这些教程可能更容易访问/使您更容易找到您想要使用的特定技术。
“哪种工具最适合我的需求:opencv,或者处理或matlab或任何其他可以轻松帮助纠正图像和创建马赛克照片的工具?”
OpenCV提供了相当数量的工具 - 首先看一下Images stitching。还有很多可用于纠正失真。但是,它不一定是您使用的工具,还有其他工具!