フィルムスキャナーには、赤外線を使って自動でほこりや傷を取る機能がついているものもありますが、銀化合物の含有量の多いモノクロフィルムやコダクロームでは機能しません。また一眼レフカメラでスキャンした場合は当然ほこり取り機能はありません。またスクラッチノイズなどのある写真プリントをスキャンした場合も同様です。
GIMP にはこのような傷を取るツールとして修復 (ヒール) ツールがありますが、ほこりや傷が多数だと非常に時間がかかります。これを一挙に取る方法はないかといくつか考えてきました。
実は、以前、このような編集について以下のような記事を書いていました。
ただ、この方法だとグラデーションのある空などを補正しようとすると、何枚もマスクを作らなければならず、ちょっと面倒です。そこで、何枚もマスクを作らずに済む方法はないかと考え付いたのが今回の方法です。基本的に GIMP のみ使用し、GIMP のガウスぼかしを活用します。
まず今回のサンプル画像をGIMP に読み込んだ、未補正な状態です。
空にかなり埃のノイズが乗っています。
1) マスク作成
ここでまず、チャンネル分解を行います。
とりあえず、RGB で分解を行ってください。すると以下のように別画像 (別ファイル)で RGB が各レイヤーに分解された画像が作成されます。
そして、各レイヤーの可視状態を切替え、どのチャンネルでもっとも埃が明確に表れているかを確認します。この画像の場合は 青チャンネルですので、以下、青チャンネルを基にマスクを作ります。なお、このサンプルの場合、オリジナルフィルムはポジフィルムなので、ほこりが黒くなっています。しかしネガフィルムの場合はほこりが白くなります。したがってネガの場合は、この画像を反転させて、以下の作業を続けます。
まず、青チャンネルレイヤーを複製します。
次に下の青レイヤーに対し、埃が見えなくなるところまでガウスぼかしを掛けます。
この画像の場合、上記のように40程度の数値で埃が完全にボケるところまで行きますが、若干完全にボケ切らない寸止めぐらい (35ぐらい) の方が良いようです。次に、ガウスぼかしの上にあるオリジナルB画像レイヤーの重ねモードを[減算]にします。
すると、もうほこりが白抜きになった画面が現れます。
ここで、レイヤーダイアログの上で、右ボタンを押して、コンテキストメニューから[可視部分をレイヤーに]を選択します。
このレイヤーに転換した画像がマスクになりますが、この埃の白抜きがよりはっきりするように、このレイヤーをレベル補正で調整します。
上の場合、ブラックポイントを 20弱、ホワイトポイントを36程度に設定しましたが、要は、ほこりがたくさん白抜きになるレベルを探るということです。この値が高めだと、埃が十分取れません。
2) 補正用レイヤーを作成しガウスぼかしを掛ける
元の画像を読み込んでおいたファイルに戻り、オリジナル画像のレイヤーをコピーします。このレイヤーが補正レイヤーになります。それに対し、埃が完全に分からなくなるまでやはりガウスぼかしを掛けます(下図)。
3) 補正用レイヤーにマスクを付ける
次に、ガウスぼかしを掛けた補正レイヤー上で、右クリックでコンテキストメニューを表示させ、マスクを追加します。
マスクの種類は完全不透明にします。
先ほど、チャンネル分解してマスク画像を作成したファイルに戻り、加工した可視レイヤーをコピーします。再度、オリジナル画像を含むファイルに戻って、上の過程で追加したマスクを編集モードにして、コピーした可視レイヤー画像を貼り付けます。
しかしこのままだとぼかしたくないところまでぼけてしまいます。
そこで、貼り付けたら、再びマスク編集で、使わない部分を黒塗りにします。
さらに、マスク補正部分 (白) の明度が足りないようであれば、レベル補正で調整して明るくしていきます。
4) マスク表示モードを解除
作業が終わったら、マスク表示モードを解除します。また補正レイヤーの明るさをトーンカーブなどを使ってやや引き上げます。すると完ぺきではありませんが、かなり埃が目立たなくなった画像が現れます。でもかなり効果的です。以前自作の ImageJ 用のマスク作成ツールを使ってほこりを取る方法について書きましたが、補正値をマニュアルで指定するため、どうしても違和感が出がちでした。ガウスぼかしを使うとその違和感が、完全になくなるわけではないにしろ、非常に少なくなります。また、マスクも複数段階作成しなければなりませんでした。この問題もガウスぼかしを使った画像を使って作成するとある程度解決します。
これで取り切れない部分は、適宜ヒール (修復) ツールをつかったり、マスク編集モードに戻して、ほこりやシミがある部分を消しゴムを掛けるなどして補正していきます。
5) 注意
この編集がうまくいくかはマスクの編集にかかっています。うまくほこりや傷が取れないときはマスクを作りなおしてください。
-------
■ほこり等があるテクスチャが複雑な場合の対処法
なお、当然ですがこの方式だと、ほこりや傷のある部分のテクスチャーが比較的単純な場合 (このサンプルのように空など) に向いています。テクスチャーが複雑で、ほこりや傷などがもともとあるテクスチャなのかほこり等なのか区分が難しい場合は、不適切なので個別にヒールツールなどを使って対処するしかありません。
ただ、この場合でも次のような方法を使うと、ヒールツールを使うよりかやや楽かもしれません。
・一旦オリジナル画像レイヤーを複写して、2) のようにガウスぼかしを掛けます。
・次に、ガウスぼかしを掛けたレイヤーに、全面黒のマスクを掛けます。
・マスクを編集対象にしたうえで、画像を見ながらほこり等のある所に消しゴムを掛けます。するとその部分だけぼかされたレイヤーが可視化されますので、ほこり等が消えます。
ヒールツールを使うと元のほこり等を含めてぼかされるのでやや黒っぽく (元がポジ素材の場合) なります。そのためこの方法の方がよりましな結果が得られる可能性があります。
-----------
■なぜこの方式だとうまくいくのか
最後に、なぜこの方式だとうまくほこり等を効果的に除去できるのか、理由を説明します。
この方式では、ガウスぼかしを掛けた画像からオリジナルの画像を差し引いて、マスクを作っています。これはいわばほこり等の相対的な明度差を使ってマスクを作ることになります。ガウスぼかしを掛けることでいわば明度のローカル平均画像を作り出し、そこからオリジナル画像を差し引くので、このようなマスクを作ることができる、ということです。
そして相対的明度差によるマスクがこのような編集に効果的なのです。