これらの値の間に数学的な関係はありますか? hFOV と vFOV がわかっている場合、焦点距離などの他の値を使用せずに対角 FOV を計算できますか?
私の最初の考えは、ピタゴラスの定理を使用することでしたが、おそらく間違っています。
これらの値の間に数学的な関係はありますか? hFOV と vFOV がわかっている場合、焦点距離などの他の値を使用せずに対角 FOV を計算できますか?
私の最初の考えは、ピタゴラスの定理を使用することでしたが、おそらく間違っています。
対象となる物理量は、センサー サイズと焦点距離です。後者は、ピンホール カメラ モデルでは、カメラの中心とイメージ プレーンの間の距離です。したがって、f で焦点距離 (mm)、W と H をそれぞれイメージ センサーの幅と高さ (mm) で表し、焦点軸が像面に直交すると仮定すると、単純な三角法により次のようになります。
FOV_Horizontal = 2 * atan(W/2/f) = 2 * atan2(W/2, f) radians
FOV_Vertical = 2 * atan(H/2/f) = 2 * atan2(H/2, f) radians
FOV_Diagonal = 2 * atan2(sqrt(W^2 + H^2)/2, f) radians
センサーのサイズと水平または垂直視野がある場合、最初の 2 つの式のうちの 1 つを f について解き、それを 3 番目の式に代入して、対角視野を得ることができることに注意してください。
いつものように、焦点距離がカメラのキャリブレーションによって推定され、ピクセルで表される場合、上記の式はいくらか適応する必要があります。
K で 3x3 カメラ マトリックスを示します。カメラ フレームの原点はカメラの中心 (焦点) にあり、X 軸は左から右、Y 軸は上から下、Z 軸はシーンに向かっています。Wp と Hp をそれぞれピクセル単位の画像の幅と高さとします。
最も単純なケースでは、焦点軸は画像平面に直交し (K12 = 0)、ピクセルは正方形 (K11 = K22) であり、主点は画像の中心にあります (K13 = Wp/2; K23 = Hp/2)。 )。次に、W を Wp に、H を Hp に、f を K11 に置き換えて、上記と同じ式を適用します。
上記と同じように少し複雑ですが、主点が中心から外れています。次に、各 FOV 角度の 2 つの側面を単純に追加します。たとえば、次のようになります。
FOV_Horizontal = atan2(Wp/2 - K13, K11) + atan2(Wp/2 + K13, K11)
ピクセルが正方形でない場合、同じ式が FOV_vertical に適用されますが、K22 や Hp などを使用します。画像の高さを幅と同じ単位に「変換」する必要があるため、対角線は少しトリッキーです。この目的には、「ピクセル アスペクト比」PAR=K22/K11 を使用して、次のようにします。
FOV_Diagonal = 2 * atan2(sqrt(Wp^2 + (Hp/PAR)^2) / 2, K11)