经过广泛的搜索,我没有找到一个很好解释WebGL鱼眼图像矫正公式的方法。在fisheye/antifisheye中,有一个“奇怪的公式”:
uv = m + normalize(d) * atan(r * -power * 10.0) * bind / atan(-power * bind * 10.0);
它在文字上被描述为“奇怪的公式”。它某种程度上遵循Paul Burke对镜头失真校正的工作(参见此处),但我并没有看到联系。在我的应用中,这个公式可以简化为(值是手动调整的,以适应我的镜头和网络摄像头):
uv = centerPoint + normalize(d) * atan(r * pi) * 1/3 / atan(pi/3)
r是像素距离图像中心的距离,d是该方向上的单位向量,centerPoint是图像的中心。我不理解反正切如何直接与坐标相关联,有人可以帮助我吗?我知道公式中反正切部分是计算像素距离图像中心的,但我不明白这是如何计算的。
谢谢!
cos
,在其他情况下,它是tan
或其他公式,这完全取决于您正在查看什么,以及如何查看(投影类型和查看的几何形状以及摄像机距离等)。... - Spektre