小鳥さんの撮影のように定点を撮影する際には後からでも手振れを補正できるんでは?という話

皆さんこんにちは。0.06°のブレでもやっぱりぶれてないほうがきれいだよねと感じる者です。
先日手振れを抑制するジンバルをあえて三脚代わりに使った結果微妙にプルプルしてしまうことが発覚しました。正直ニコンB700は最大258mm相当かつさらにデジタルズームで倍くらいに引き延ばしていたので、これくらいは許してあげてくださいよというレベルですがね。

今回はタイトルの通り動画を後から補正してあげることでこの微小なブレを取り除いてやろう!という企画です。


ほんじゃまず何がいるん?

とりあえず手振れを補正してくれるソフトなど無限に存在していると思いますが、タダで補正するにはまずVisualCodeでPythonをインストールし、OpenCVを利用するというのが定番でしょう(?)
これらのソフトは確か商売に使わないならタダで使えたはずです。なんか10年以上前はこんなのなかった気がしますね。今の学生は恵まれているなぁと嘆く老害になってしまいそうです…

そもそも手振れってどーすりゃ補正できるん?

と思っていましたが、まあシンプルに動画のうち適当な領域を切り取ってそれが次のフレームでどこに移動しているかを計算するだけでいいですよね。
実は前述のOpenCVにはその機能が元からついており、画像の相関を取ることでいともたやすく画像がどの程度移動しているか計算することができます。
実は以前C言語を利用して気合で画像の相関を取るプログラムを作成したことがあるのですが、このライブラリを利用することで圧倒的に速く計算することができます。(ただし一回は自分で考えて作ってからライブラリを使うのも乙なものです。行きは歩いて行って帰りは電車で帰るイメージですね)

各フレームでの移動量がわかればそれを打ち消すように動画の中から切り取る領域を変更することで疑似的に手振れを補正することができるのです。

なお詳細なOpenCVの使い方はグーグルさんで検索することで無限に紹介されていますので、そちらを参考ください。

本当にそんな方法で大丈夫か?

と思っていたのですが、これに関しては多分あっているのではないかなーと考えています。というのもお手元のスマホの手振れ抑制機能をON-OFF繰り返してみてください。おそらく手振れ補正をONにした場合に撮影できる領域が狭まってしまうと思います。私の考えではその狭まった領域分の手振れ補正量を確保することでソフトウェア上で疑似的に揺れを補正していると思っています。

グダグダ言ってないで結果を示せ

という方。こちらが今回画像の相関を利用し、撮影後に手振れ補正を効かせた結果になります。動画の左側が元の動画の切り抜きで、右側が補正した結果になります。

圧倒的ではないか我が補正能力は!!
HAHAHA!!

ただしなんとなくこの構造から察されている方もいらっしゃると思いますが、この手振れの補正形式では定点を撮影している動画以外使えません。木などにとまっている小鳥さんの撮影では使えますが、ぴょんぴょんしている鳥さんには使えません。次はこの致命的な欠点を改善したいなと思います。

次回:金がないならフリーソフトを使えばいいじゃない

こうご期待?


この記事が気に入ったらサポートをしてみませんか?