Dam*_*dEi 12 c++ opencv camera-calibration image-stitching opencv-stitching
我已经找到了很多关于使用OpenCV进行图像拼接和变形的问题和答案,但我仍然找不到我的问题的答案.
我有两个鱼眼摄像头,我成功校准,因此在两个图像中都消除了失真.
现在我想将那些经过纠正的图像拼接在一起.所以我几乎都遵循这个例子,这也是很多其他拼接问题中提到的: 图像拼接示例
所以我做了Keypoint和Descriptor检测.我找到了匹配并获得了Homography矩阵,因此我可以扭曲其中一个图像,这样可以得到一个非常拉伸的图像.另一张图片保持不变.拉伸是我想要避免的.所以我在这里找到了一个很好的解决方案: 拉伸解决方案.
在幻灯片7上,您可以看到两个图像都被扭曲.我认为这会减少一幅图像的拉伸(在我看来,拉伸将分开,例如50:50).如果我错了请告诉我.
我遇到的问题是我不知道如何扭曲两个图像以使它们适合.我必须计算两个同性恋吗?我是否必须像Rect()或其他东西一样定义参考平面?如何实现幻灯片7所示的变形结果?
为了说清楚,我不是在德累斯顿工业大学学习,所以这只是我在研究时发现的东西.
在另一幅图像的坐标系中对两幅图像中的一幅进行变形更为常见,因为它更容易:可以直接从图像对应关系中计算出 2D 变形变换。
将两个图像扭曲到一个新的坐标系中是可能的,但更复杂,因为它涉及 3D 变换并且需要相对于初始两个准确定义一个新的 3D 坐标系。
基本思想(非常粗略地)体现在链接演示文稿中幻灯片 #2 上的手绘中。我做了一个更大的:
基本上,程序如下:
T 2<-1 = R 2<-1 * [ I 3 | 0 ]
T n<-1 = square_root( R 2<-1 ) * [ I 3 | 0 ]
T n<-2 = T n<-1 * T 2<-1 -1
H n<-1 = K * R n<-1 * K -1
H n<-2 = K * R n<-2 * K -1
请注意,第 3 步假设图像是从空间中的同一点拍摄的(纯相机旋转),否则图像之间可能存在一些视差,这可能会产生可见的拼接缺陷。
希望这可以帮助。
参考:[HZ03] Hartley、Richard 和 Andrew Zisserman。计算机视觉中的多视图几何。剑桥大学出版社,2003 年。
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |