手ブレについて考えたことがあるけど、ずばり焦点距離が x のとき、特定カメラの性能で 1px 以内に手ぶれが収まるシャッタースピードを求める関数が欲しかったので書いた。
function minimunSpeedByFocalLength (focalLength, opts) {
if (!opts) opts = {};
if (!opts.jiggle_angle) opts.jiggle_angle = minimunSpeedByFocalLength.JIGGLE_ANGLE.ADVANCED;
return Math.atan( (opts.sensorSize.width / opts.pixels.width) / focalLength ) / degreeToRadians(opts.jiggle_angle);
}
minimunSpeedByFocalLength.JIGGLE_ANGLE = {
NOVICE : 5,
ADVANCED : 2
}; で
var sensorSize = {
width: 36,
height: 24
};
var pixels = {
width: 5616,
height: 3744
};
function show (f) {
var speed = 1 / minimunSpeedByFocalLength(f, {
sensorSize : sensorSize,
pixels : pixels
});
console.log("%dmm 1/%dsec (スピード%d倍=%d段)",
f,
Math.floor(speed),
~~(speed / f),
Math.sqrt(speed / f).toFixed(2)
);
}
show(24);
show(50);
show(100);
show(200);
show(24);
show(50);
show(100);
show(200); 手ぶれ補正4段分ぐらいあってようやく、いわゆる「焦点距離分の1」で手ブレが無視できるようになる。
画質の評価とかをする場合、十分にシャッタースピードが早いかを確認する必要がありそうだと思った。
-
トップ
-
tech
-
手ぶれを無視できるシャッタースピード