省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

GIMP & 新・輝度マスク作成ツールによる ポジフィルムのほこり・カビ等デジタル補正 実践例

 昨日、新・輝度マスク作成ツールをバージョンアップしましたが、今回はそれを応用した編集事例編です。

 既にポジフィルムをデジタル化した画像の汚れ取りに関しては以下の記事に書いています。

yasuo-ssi.hatenablog.com ただ、この記事の場合は、カビもありますが、色のついた汚れの補正について書きました。単純な埃やカビの場合は、これも先日書いたモノクロフィルムのデジタルカビ取りが応用できそうです。

yasuo-ssi.hatenablog.com そこで、今回は先日バージョンアップした新・輝度マスク作成ツールを使って埃やカビ取りを行う方法について書いてみます。

 カラーフィルムの場合、スキャナを使うと多くの場合自動的に埃を取る機構が使えます。しかしKodachromeの場合、あるいはデジタルカメラを使って取り込みを行う場合は、それらの機構は使えません。埃がそんなになければ、画像処理ソフトのスポット補正機能や、GIMPの場合は、スマート消去などを使うと簡単に除去できますが、埃のついている箇所が多数に及ぶ場合、あるいはカビが画面上はびこっている場合はかなり面倒です。そこで今回は、モノクロネガフィルムのカビ取り記事を応用することにしました。但し、モノクロネガと異なる点は、フィルムがネガではなくポジなので、補正に使うマスクも反転させないといけないということです(ネガは埃やカビが白く、ポジは黒く映る)。

 まずオリジナルフィルムを見てみます。空の方に何か所か埃がついています。

オリジナル

 拡大してみます。

埃拡大

 こんな細かい埃が多数あると面倒です。そこでまずRGB分解をして、どのチャンネルが一番埃の識別に適しているかを見ます。

 

Rチャンネル

Gチャンネル

Bチャンネル

 どうもBチャンネルが、埃がくっきりと写っており、空の埃の識別に最も適しているようです。そこで今回は先日バージョンアップしたImageJ対応の新・輝度マスク作成ツールを使って、埃取り用マスクを作成します。単に輝度に基づいたマスクを作るのであれば、モノクロネガフィルムのカビ取りでご覧に入れたように、相対RGB色マスク画像作成ツールを使っても良いのですが、今回はカラーチャンネル画像を基にマスクを作るので、新・輝度マスク作成ツールを使います。

 まずこのツールを起動すると、チャンネル選択ダイアログになりますので、両方ともブルーを選択します。

 次のパラメータ入力画面で最低閾値と最高閾値を入れます。空の埃を取る場合、最高閾値は255で良いと思いますが、最低閾値は、おおむね埃のある周辺の明度に近い値を設定します。後で述べますが、埃のある場所の周辺明度はいろいろありうるので、複数の明度のマスクを作っておき、複数のレイヤーを使って補正するようにしたほうが良いと思います。透過係数は4ぐらいが良いでしょう。また一番上、[Negaマスクを作る]にチェックを入れておきます。これは埃が黒く映るためです。つまり、黒い埃が白く映るマスクを作るわけです。

パラメータを指定するダイアログボックス

 例えば、作成したマスクの例は以下です。埃の部分が白抜きになっているのが分かると思います。

作成した補正レイヤー用マスク画像

 マスクを作成したら、GIMPにもどり、元の画像を読み込んだレイヤーの上に補正用レイヤーを新しいレイヤーとして追加します。

補正用レイヤーの追加

 レイヤー名は何でも良いですが(下のサンプルでは「ほこり補正1」としている)、必ず塗潰し色を[透明]にします。

埃補正レイヤーの追加

 追加した埃補正レイヤーに ImageJで作った、マスクを掛けます。GIMP上でマスクを掛ける際は、拙作の以下のツールがGIMP上に導入してあると便利です。

yasuo-ssi.hatenablog.com

 マスクを掛けたら、マスクを編集モード & 表示させます。右ボタンを押してコンテキストメニューからモードを選んでください。

レイヤーマスクの表示

 

レイヤーマスク表示中

 マスクを編集&表示モードにしたら、下図のように、マスクを編集します。使わない部分を黒塗りにしていきます。

マスク編集中

 マスク編集が終わったらマスク編集&表示モードを終わらせます。コンテキストメニューを表示させ、モードをオフにして下さい。

 そうしたら、オリジナル画像のレイヤーが選択されているのを確認した後、埃の近くの正常な部分を下図のように範囲指定します。

範囲指定時に選択するレイヤー

範囲選択している所

 範囲指定した部分を Ctrl+C でコピーし、補正レイヤーを選択します。

補正レイヤーを選択

 そうしたら、Ctrl+V で貼り付けます。すると一旦フローティングレイヤーとして貼りつくので...

貼り付けた時のフローティングレイヤーの位置

この状態で埃が隠れるように貼り付けた部分を右に移動します。

埃が隠れるようフローティングで貼り付けた部分を右に移動

 きれいに隠れました。ここで、[レイヤーの固定]を選ぶか、Ctrl+Hを押して、フローティングレイヤーを下の補正レイヤーと結合させます。この方法の、周囲の似たコンテクストのところを単純に選択&コピーして貼り付けるより、より有利な点は何かというと、埃以外の余計な部分を消す心配がないということです。例えば下記のような埃を消すには、この方法が非常に有利です。

本手法が有利なケース

 周囲の似た部分をただ貼り付ける場合、埃以外に、霜がついて白く映っている電線を消してしまう可能性がありますが、この方法だと黒っぽい埃の部分だけマスクが透過しますので、白い電線を消す心配がありません。

上の部分の編集用マスク
埃の部分が白抜きになる一方、電線部分は黒でカバーされている

 上の編集マスクのかかった補正レイヤーに、埃周辺部分の似たようなコンテキスト部分をコピーして貼り付け、埃を隠します。結果は下記です。

補正結果
電線部分はマスク上黒でカバーされているので誤って消えることがない

 このようなケースでは、Resynthesizerを使っても、電線のところがうまくつながってくれるか微妙です。但し周辺の消したくない模様が埃と同じような明度だと (例えば電線が黒の場合)、ちょっと難しくなります。この場合は、下記のようなオーソドックスな方法を使うべきかと思います。

yasuo-ssi.hatenablog.com なお、埃がきれいに隠れるかどうかは、マスクのパラメータ(明度の下限閾値)と埃の周辺の明度の値がうまくマッチするかどうかによります。合わないと、うまく隠れてくれません (埃が多少薄くなる程度、もしくは境界線が目立つなど)。そこで、マスクもパラメータを変え数段階のマスクを作成するとともに、それぞれのマスクを掛ける複数の補正レイヤーを用意したほうが良いです(下図)。

マスクのパラメータの異なる複数の補正レイヤーの設置

 また、最終的にうまくいかない部分がある場合はその部分だけ、Resynthesizerのスマート消去を使う等対応してみてください。下が最終的な補正結果です。埃を消去した後ARTで全般的な補正を掛けています。

最終的な補正結果

 とはいえ、この方法もそこそこ手間がかかります。従ってこの方法を使うべきなのは、以下の場合です。

1) ほこりが非常にたくさんあり、一つ一つ取り切れない場合
 広範囲のほこりを一気に消せる可能性があります。

2) カビの痕跡の消去

 逆に、取り除くべき埃のある個所が数カ所にとどまる程度なら、GIMPのResynthesizerを使ったり、他の画像処理ソフトのスポット補正などのツールを使った方がよいと言えます。