我正在尝试为我的SLAM项目模拟镜头畸变效果。已经提供并加载了扫描的彩色3D点云到OpenGL中。我的目标是在给定的姿态下渲染2D场景,并在真实图像(来自鱼眼相机)和渲染图像之间执行一些视觉里程计。由于相机具有严重的镜头畸变,因此在渲染阶段也应该考虑它。
问题是我不知道在哪里放置镜头畸变。着色器?
我找到了一些开源代码将畸变放置在几何着色器中。但我猜这个畸变模型与计算机视觉社区中的镜头畸变模型不同。在计算机视觉社区中,镜头畸变通常发生在投影平面上。 这个与我的工作非常相似,但他们没有使用畸变模型。
有人有好主意吗?
我刚发现了另一种实现。他们的代码在片段着色器和几何着色器中都实现了扭曲效果。但是在我的情况下,片段着色器版本可以使用。因此,我猜以下代码会起作用:
问题是我不知道在哪里放置镜头畸变。着色器?
我找到了一些开源代码将畸变放置在几何着色器中。但我猜这个畸变模型与计算机视觉社区中的镜头畸变模型不同。在计算机视觉社区中,镜头畸变通常发生在投影平面上。 这个与我的工作非常相似,但他们没有使用畸变模型。
有人有好主意吗?
我刚发现了另一种实现。他们的代码在片段着色器和几何着色器中都实现了扭曲效果。但是在我的情况下,片段着色器版本可以使用。因此,我猜以下代码会起作用:
# vertex shader
p'=T.model x T.view x p
p_f = FisheyeProjection(p') // custom fish eye projection