C++ OpenCV通过扭曲两个对象来缝合图像
我已经找到了很多关于OpenCV图像拼接和扭曲的问题和答案,但我仍然找不到答案 我有两个鱼眼相机,我校准成功,使失真是消除在两个图像 现在我想把这些校正过的图像缝合在一起。所以我基本上遵循了这个例子,在很多其他缝合问题中也提到了这个例子: 所以我做了关键点和描述符检测。我找到了匹配项,也得到了单应矩阵,这样我就可以扭曲其中一幅图像,从而得到一幅真正拉伸的图像。另一个图像保持不变。拉伸是我想要避免的事情。所以我在这里找到了一个很好的解决方案: 在幻灯片7中,您可以看到两个图像都扭曲了。我认为这将减少一个图像的拉伸(在我看来,拉伸将被分开,例如50:50)。如果我错了,请告诉我 我的问题是,我不知道如何扭曲两个图像,使它们适合。我必须计算两个同形图吗?我必须定义一个参照平面,比如Rect()或其他什么吗?如何达到幻灯片7所示的翘曲效果C++ OpenCV通过扭曲两个对象来缝合图像,c++,opencv,camera-calibration,image-stitching,opencv-stitching,C++,Opencv,Camera Calibration,Image Stitching,Opencv Stitching,我已经找到了很多关于OpenCV图像拼接和扭曲的问题和答案,但我仍然找不到答案 我有两个鱼眼相机,我校准成功,使失真是消除在两个图像 现在我想把这些校正过的图像缝合在一起。所以我基本上遵循了这个例子,在很多其他缝合问题中也提到了这个例子: 所以我做了关键点和描述符检测。我找到了匹配项,也得到了单应矩阵,这样我就可以扭曲其中一幅图像,从而得到一幅真正拉伸的图像。另一个图像保持不变。拉伸是我想要避免的事情。所以我在这里找到了一个很好的解决方案: 在幻灯片7中,您可以看到两个图像都扭曲了。我认为这
说清楚一点,我不是在杜德累斯顿大学学习,所以这只是我在研究时发现的。在另一幅图像的坐标系中扭曲两幅图像中的一幅更为常见,因为这样更容易:可以直接从图像对应计算2D扭曲变换 将两个图像扭曲到新的坐标系是可能的,但更为复杂,因为它涉及三维变换,需要准确地定义与初始两个坐标系相关的新三维坐标系 基本思想(非常粗略地)在链接演示文稿幻灯片#2上的手绘图中表示。我做了一个更大的: 基本上,程序如下: