经过大量搜索,我一直无法找到一个解释得体的 WebGL 鱼眼图像校正公式。鱼眼/反鱼眼的Shadertoy显示公式
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 是图像的中心。我不明白反正切如何直接与坐标联系在一起,谁能帮我得到它?我确实知道带有反正切的公式部分是计算距图像中心的像素距离,我不明白是如何计算的。
谢谢!