我有一张2D彩色图像。所有的彩色点都位于这个矩形图像中心的圆形区域内,圆形外的所有点都是黑色的(我从鱼眼相机获取这些矩形图像)。我知道这个圆的中心坐标和半径。我需要将2D图像中圆形区域内的所有彩色点移动到球面上。更确切地说,是半球面,因为我的相机具有180度的视场角。我的问题是:如何正确地移动这些彩色点?只需根据球体方程将圆形区域内的所有点分配Z坐标是否正确?为了让我的问题更清晰,我附上了来自我的鱼眼相机的2D图像和理想结果的图像。
首先,您需要获取相机的镜头校准数据。Ocam或OpenCV将为您完成出色的工作。 其次,由于您已经知道光学中心,因此可以将图像坐标转换为球面坐标。因此,现在您有了将图像坐标映射到球面坐标的映射函数。 第三,您需要一些渲染工具来观察您映射到球面上的图像。最简单的方法是使用OpenGL。将纹理映射到球体上并将相机移动到球内部。