【问题标题】:How to move colored points from 2D image to 3D sphere如何将彩色点从 2D 图像移动到 3D 球体
【发布时间】:2018-10-03 03:58:00
【问题描述】:

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

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

我的问题是。如何正确移动这些彩色点?按照球面方程只为圆区域内的所有点分配Z坐标是否正确?

为了让我的问题更清楚,我附上了来自鱼眼相机的 2D 图像和具有理想结果的图像。

【问题讨论】:

    标签: math 3d geometry projection fisheye


    【解决方案1】:

    首先,您需要相机的镜头校准数据。 Ocam 或 opencv 会为你做得很好。

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

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

    【讨论】:

    • 感谢您的回复!我是否理解正确,要将图像坐标映射到球体坐标,我必须根据球体方程为鱼眼圈内的每个点分配 Z 坐标?
    • 我已经测试了 cv::fisheye。我得到了放在上面的未失真版本的鱼眼图像。不幸的是,该工具仅对鱼眼图像的中心部分进行不失真,因为未失真的圆半径等于无穷大。无论如何我都有校准数据(相机矩阵和 4 个径向畸变系数)
    猜你喜欢
    • 1970-01-01
    • 2018-04-29
    • 2017-05-30
    • 1970-01-01
    • 2012-04-18
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多