フリーソフトで可能!長時間露光を使わないで通行人を消す方法を試してみた!

撮影した写真を見返してみて、「あぁここに人が写り込んでなければなー」と嘆いたことはありませんか?その場でチェックして撮り直せる時はいいのですが、人通りが多かったりするとなかなか人がいなくなるタイミングが見つからなかったり、自分がそこにいること自体が他の人の邪魔になったりしてなかなかうまくいかないものです。

今回は、複数枚の画像を合成して写真から通行人を消す方法を試してみましたので紹介します。

写真から通行人を消す3つの方法

長時間露光

写真の教科書的には、動く人を消したいときはNDフィルターをつけた上で絞り込み、シャッタースピードを長くしてしっかりとした三脚を使って長時間露光をすることが勧められています。しかしこの方法では、どうしても人の影が幽霊のように残ってしまったりして、なかなか完全に消すことは難しいものです。また、途中で立ち止まる人が出てきてしまうと最初からやり直しです。機材の面でも、NDフィルターは安い買い物ではありませんし、かなりしっかりした三脚が必要となるため、気軽に行うこともできません。

修復ブラシによる画像処理

最近はPhotoshopやLightroomなどの画像編集ソフトが進化したことにより、写り込んだ人を後から画像処理で消すことも可能です。この方法は基本的には同一画像内で似たところを持ってきて邪魔なもの(人)を隠しているだけなので、背景が均質なときはうまくいきますが、背景が複雑だったり、人が多かったり、人が大きく写っていたりすると非常に難しくなります。

試したことのない方は、Lightroomのサイトにあるムービーを再生してみるといいでしょう。この例のように、背景が一面の海で、人が小さければうまくいきますが、上で述べたようなシチュエーションでは難しくなるというのもわかって頂けるかと思います。

複数画像の合成

画像合成は、同じ構図で複数の写真を撮っておいて、人の写っていない部分を合わせて一枚の写真にします。ただし、実際に写真の切り貼りをするのではなく、ピクセル単位で比較し、その中央値を採用するというものです。この方法では、一枚一枚の写真は通常のシャッタースピードで撮ればよいのでブレが目立ちにくいですし、人通りの激しさに応じて撮影のインターバルを変えればよいので長時間露光ほどシャッタースピードの調節がシビアではありません。構図が変わらないように簡単な三脚で固定しておいて、露出が変わらないようにマニュアルモードで、ピントとホワイトバランスも固定しておいて何枚か写真を撮るだけです。インターバル撮影が便利ですが、等間隔で取る必要もないのでレリーズなどで何回かシャッターを切ればOKです。

実際にやってみた

さてGRをGorillapod Focusに固定し(そういえばこれ届いたのにまだレビューしていませんでした。そのうちします。購入の顛末はこちら)、インターバル20秒で10枚撮影したのが以下です。わかりやすいようにGIFアニメにしてみました。

test

人が何人も通っているのがわかるでしょうか。今回はこの10枚の写真を使って中央値合成をやってみます。

やり方を説明します

このやり方はPhotoshopでももちろんできますが、通常版ではなくPhotoshop extendedという上位バージョンのものでないとできないそうです。最近流行りの月額課金制Creative Cloud (CC)で使用できるPhotoshopではできるそうですが、私の持っているPhotoshopではできなかったのでフリーソフトを探しました。つまりタダでできます!

写真を撮影する

まずは写真を撮影します。先述したようにマニュアルモードで露出を固定し、ホワイトバランスも固定しておきます(正直に言うと今回は忘れていましたがうまくいきました。露出が変わる前にすぐ撮り終われば大丈夫かと)。またピントが動かないようにフォーカス後MFにしておくとよいでしょう。三脚で固定する、平らな面に置くなどして構図が変わらないようにした後、10枚ほど撮影します。このとき、人の位置が十分に変わるように時間を開けましょう。連写で10枚撮っても同じ位置に人がいますからね。確実に消すためには、10枚撮って、その位置に人がいない枚数が5枚以上ないといけません。人が多いほど多くの枚数が必要になると思います。今回は20秒間隔でインターバル撮影しました。上のGIFでわかるように、適当に人がばらついています。撮影した写真はPCの同じフォルダに入れておきましょう。

ImageJをインストールする

今回使用するのはImageJというフリーソフトです。聞きなれないかもしれませんが、もともと学術研究用にアメリカで開発されたもので、理系の学生さんには知っている人も多いかもしれませんね。WindowsでもLinuxでもMacでも使えます。今回はこれを写真の合成に使っちゃいます。公式サイトからダウンロードしてインストールしてください。URLがnih.govであることからもわかるように、NIH(アメリカ国立衛生研究所)という公的機関で開発された由緒正しいソフトです。

ImageJを起動し、撮影したファイルを読み込む

英語ですがビビらないでください。機能が豊富なのでメニューが複雑ですが、今やることは限られています。メニューからFile – Import – Image Sequenceの順に開き、上で撮影したファイルを保存したディレクトリを指定します。下のようなウィンドウがひらくので、”Number of images”が撮影した枚数と同じであることを確認してOKしてください。

SS1

全ての写真が格納されたウィンドウが1つだけ開くはずです。ImageJではこれをStackと言っています。メモリが足りないというエラーが出た場合は下を参照してください。

ImageJで中央値での合成を行う

メニューからImage – Stacks – Z project を選んでください。写真(XY平面)をZ軸方向(Stack=重ねあわせた写真)に射影するという意味です。下のようなウィンドウが開くのでProjection typeからMedian(中央値)を選んでOKを押してください。メモリが足りないというエラーが出た場合は下を参照してください。

SS2

画像が生成され新しいウィンドウで開いたらメニューからFile – Save asで好きな形式で保存してください。デフォルトのファイル名はMED_ディレクトリ名となっているはずです。

メモリが足りないというエラーが出たら

ファイルが大きすぎたり多すぎたりすると、操作をしている際にメモリが足りないというエラーが出るかもしれません。その時はメニューからEdit – Options – Memory & Threadsを選択してでMaximum memoryを増やしてください。もちろん、PCに積んでいるメモリより大きくはできません。OKを押した後、ImageJを再起動してください。

SS3

 

結果:綺麗に消えました

下に結果を示します。どうですか?人が綺麗に消えていますね。思わず「おおっ」と声が出てしまいました。今回はテストということで少し意地悪して風で動く木々を入れています(上のGIFアニメ参照)。この部分に関してはやはり少し解像感は失われてしまいますが、このような特性を知った上で使う分にはかなり有用なのではないでしょうか。人通りの激しい場所で人を消して撮影をしたい場合、おすすめのテクニックです。

MED test

 

失敗例:写真の数が少なすぎる場合

おまけとして、もし写真の数が少ないとどうなるのかを示しましょう。先ほどの10枚の写真のうち3枚を選んで合成しました。

Failure

ぱっと見良さそうですが…左端を見てみると…

Failure magnified

人影が残っています。これは、選んだ3枚のうち2枚で、ここに人が重なってしまっていたからです。撮影の際はこのようなことが起きないように十分な枚数の写真を撮影する必要がありますね。以上、ImageJを使った平均値合成による通行人消去の方法でした。