OpenCV:将图像包装到圆柱坐标

时间:2010-12-20 10:45:08

标签: c++ opencv computer-vision

我正在尝试使用opencv库创建全景图像。基于this,我需要将图像扭曲成圆柱坐标。我得到了从全景图像拼接纸中将3D笛卡尔(X,Y,Z)转换为圆柱坐标(θ,v)的公式,即:

  θ = tan−1 (X/Z)

  v = Y/ √ (X^2 + Z^2)

我已经阅读了关于圆柱形图像变形的opencv邮件列表主题,但基于该论文,我认为我不需要使用相机校准矩阵。而且,在网站上,问题还没有解决。问题是,我们如何将opencv IplImage转换为圆柱坐标并正确显示它们?

提前致谢。

2 个答案:

答案 0 :(得分:0)

不幸的是,如果您想要将图像从笛卡尔坐标转换为圆柱坐标,则需要进行相机校准。

想一想。如果未校准相机,则您不知道相机的视野是什么。如果您没有视野,则无法将像素映射到光线。如果您不知道与您的像素对应的光线,则无法以圆柱坐标表示该像素。

答案 1 :(得分:0)

如果您有足够重叠的图像(> 90%-95%),您可以通过从每个图像中间取窄的垂直切片并将它们拼接在一起来跳过校准。根据相机工作的稳定性,您可能需要通过匹配重叠部分来校正相机之间的垂直和旋转运动。如果你有一个非常好的镜头,你可以减少重叠。

This article是一个很好的起点。