手ぶれを補正

思いの他効果が認められたので紹介しておく。


手ぶれはピンボケと違って全方向にボケを生じない。基本的にはカメラのずれ方向に従って直線的に(シャッター速度が遅くカメラが大きく動いた時は曲線的な場合もあるが、それは補正しようもないので対象外)ボケが生じる。
画素ひとつひとつを穴に例えれば、正円であるべき穴が楕円になってしまったようなものだ。ならば、2枚の画像を穴の長径方向に従ってずらして重ねてやれば、元の穴を近似できるのではないか。
実際にやってみた。

この画像は、ぼかし補正の効果を比較したものである。左上はオリジナル画像、右下はそれを移動ぼかしフィルタで手ぶれをシミュレートしたもの。
右上は「シャープ」フィルタによる補正。網目などに効果が認められる。フィルタ一発でここまで補正できるのだから大したソフトだ。
左下が問題の手法によるもの。具体的には、

  1. 複製したレイヤをボケの発生方向に同量だけずらして配置、上レイヤーのモードを「差の絶対値」にする。
    • ほとんど同一で位置だけがちょっとずれた画像なので、輪郭以外が真っ黒な画像になる筈。
  2. 1を統合して元レイヤーの上に重ねて「差の絶対値」。
    • つまり中央に置いた画像の左右方向のずれを、左右に置いた画像でフィルタして楕円を擬似的な正円に戻しているわけだ。

如何だろうか。アンシャープフィルタによる補正が全体強調され過ぎて毛が硬い感じになってしまっている(まあパラメータ指定にも因るとは思うが)のに大し、雰囲気を保ったままある程度のボケ補正に成功している……ように見えはしないか。
問題は、「手間を考えたらやっぱりフィルタ使うべきなんじゃないか」という点だ。
尚、今回は機械的に水平としたが実際の手ぶれでは角度が水平/垂直とは限らない。画像を回して水平にするか、或いは重ねる画像の移動方向を変えるか(ピクセル単位の移動で角度を調整するのは難しいと思うが)。


GIMPで手ぶれ写真を修整する - みんなのIT活用術で、GIMPによるより高精度な補正の紹介が。