如何将彩色点从 2D 图像移动到 3D 球体
How to move colored points from 2D image to 3D sphere
我有二维彩色图像。所有彩色点都位于此矩形图像中心的圆形区域内,圆圈外的所有点都是黑色的(我从鱼眼相机获得这些矩形图像)。
我知道这个圆的中心坐标和它的半径。
我需要将所有彩色点从 2D 图像上的圆形区域移动到球体表面。更准确地说是半球,因为我的相机有 180 度 FOV。
我的问题是。如何正确移动这些彩色点?根据球面方程只给圆区域内的所有点赋Z坐标是否正确?
为了让我的问题更清楚,我附上了鱼眼相机的二维图像和效果理想的图像。
首先,您需要相机的镜头校准数据。 Ocam 或 opencv 会很适合你。
其次,正如您提到的,您已经知道了您的光学中心,您可以将图像坐标转换为球体坐标。所以,现在你有了将图像坐标映射到球体坐标的映射函数。
第三,您需要某种渲染工具来观察您的图像映射球体。最简单的方法是使用 OpenGL。将您的纹理映射到一个球体上,然后在球体内移动相机。
我有二维彩色图像。所有彩色点都位于此矩形图像中心的圆形区域内,圆圈外的所有点都是黑色的(我从鱼眼相机获得这些矩形图像)。 我知道这个圆的中心坐标和它的半径。
我需要将所有彩色点从 2D 图像上的圆形区域移动到球体表面。更准确地说是半球,因为我的相机有 180 度 FOV。
我的问题是。如何正确移动这些彩色点?根据球面方程只给圆区域内的所有点赋Z坐标是否正确?
为了让我的问题更清楚,我附上了鱼眼相机的二维图像和效果理想的图像。
首先,您需要相机的镜头校准数据。 Ocam 或 opencv 会很适合你。
其次,正如您提到的,您已经知道了您的光学中心,您可以将图像坐标转换为球体坐标。所以,现在你有了将图像坐标映射到球体坐标的映射函数。
第三,您需要某种渲染工具来观察您的图像映射球体。最简单的方法是使用 OpenGL。将您的纹理映射到一个球体上,然后在球体内移动相机。