如何将彩色点从 2D 图像移动到 3D 球体

How to move colored points from 2D image to 3D sphere

我有二维彩色图像。所有彩色点都位于此矩形图像中心的圆形区域内,圆圈外的所有点都是黑色的(我从鱼眼相机获得这些矩形图像)。 我知道这个圆的中心坐标和它的半径。

我需要将所有彩色点从 2D 图像上的圆形区域移动到球体表面。更准确地说是半球,因为我的相机有 180 度 FOV。

我的问题是。如何正确移动这些彩色点?根据球面方程只给圆区域内的所有点赋Z坐标是否正确?

为了让我的问题更清楚,我附上了鱼眼相机的二维图像和效果理想的图像。

首先,您需要相机的镜头校准数据。 Ocam 或 opencv 会很适合你。

其次,正如您提到的,您已经知道了您的光学中心,您可以将图像坐标转换为球体坐标。所以,现在你有了将图像坐标映射到球体坐标的映射函数。

第三,您需要某种渲染工具来观察您的图像映射球体。最简单的方法是使用 OpenGL。将您的纹理映射到一个球体上,然后在球体内移动相机。