広範な検索の結果、WebGL 魚眼画像補正の適切に説明された式を見つけることができませんでした。フィッシュアイ/アンチフィッシュアイの Shadertoyは式を示しています
uv = m + normalize(d) * atan(r * -power * 10.0) * bind / atan(-power * bind * 10.0);
これは文字通り「奇妙な公式」と表現されています。ここでは、レンズの歪み補正に関する Paul Burke の作業に何らかの形で従いますが、関連性はわかりません。私のアプリケーションでは、数式は次のようになります (値はレンズと Web カメラに合わせて手動で調整されます)。
uv = centerPoint + normalize(d) * atan(r * pi) * 1/3 / atan(pi/3)
ここで、r は画像の中心からのピクセルの距離、d はその方向の単位ベクトル、centerPoint は画像の中心です。逆正接を座標に直接結び付ける方法がわかりません。誰か助けてもらえますか? アークタンジェントを使用した式の部分は、画像の中心からのピクセル距離の計算であることがわかります。理解できないのは、それがどのように計算されるかです。
ありがとう!