画角と焦点距離

画角(°)と焦点距離(mm)を変換する計算。ここでは水平画角を基準にしている。

この図から、つぎの式が成り立つ
tan(Θ/2) = (Aperture/2) / FoculLength

焦点距離から画角を計算する

tan(Θ/2) = (Aperture/2) / FoculLengthという関係なので
Θでまとめると
Θ/2 = atan((Aperture/2) / FoculLength)
Θ = 2 * atan((Aperture/2) / FoculLength)

// 焦点距離から画角を計算する
float aperture = 36;   // 水平の長さ(フルサイズは36x24mm)
float focalLength = 50.0;   // 焦点距離(mm)

float theta = 2 * atan2(aperture/2, focalLength);

printf('theta:' + sprintf('%g', degrees(theta)) + '°\n');
//theta:39.5978°

撮像素子(36x24mm)の焦点距離50mm=画角39.59°となる

焦点距離画角
12mm112.62°
16mm96.7329°
35mm54.4322°
50mm39.5978°
70mm28.8415°
105mm19.4552°
135mm15.1893°
200mm10.2855°
400mm5.15314°
aperture = 36mmの場合

画角から焦点距離を計算する

tan(Θ/2) = (Aperture/2) / FoculLengthの式から
FoculLengthにまとめると
FoculLength = (Aperture/2) / tan(Θ/2)

// 画角から焦点距離を計算する
float aperture = 36;   // 水平の長さ(フルサイズは36x24mm)
float theta = radians(30);

float focalLength =  (aperture/2) / tan(theta/2);

printf('focalLength:' + sprintf('%g', focalLength) + 'mm\n');
//focalLength:67.1769mm

撮像素子(36x24mm)の画角30°=焦点距離67.17mmとなる

画角焦点距離
120°10.3923mm
105°13.8119mm
90°18mm
75°23.4581mm
60°31.1769mm
45°43.4558mm
30°67.1769mm
15°136.724mm
412.268mm
aperture = 36mmの場合

タイトルとURLをコピーしました