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

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

デジタル化モノクロフィルム画像のデジタルカビ取り補修方法 (改訂版 2023.8)

 以前、モノクロフィルムのデジタル的カビ取り補修法について記事を公開しましたが、今回、新・輝度マスク作成ツールのバージョンアップに伴い、この内容を更新した記事を公開します。

----------

 モノクロネガフィルムをスキャンしたカビが目立つ画像を、新・輝度マスク作成ツールを使って補修する方法について紹介します。基本的なやり方はカラーポジと似ていて、ImageJ上で走る拙作の新・輝度マスク (Luminosity Mask) 作成ツールとGIMPを使います。なお今回はモノクロネガなので、カビの部分は黒っぽくなったり色がつくのではなく、逆に白抜きになります。このため、本ツールでポジマスクを作って補正します。もしポジフィルムであればネガマスクを作ります。また色チャンネルが一つしかない点も難しい点です。

 因みにネットで検索すると、フィルムから物理的にクリーナー等を使ってカビを除去する方法は見つかりますが、デジタル的に補正する方法の解説は極めて僅かです。

 まず、新・輝度マスク (Luminosity Mask) 作成ツール Ver. 0.25を導入して下さい。ダウンロードは以下のページからお願いします。

yasuo-ssi.hatenablog.com

 今回のカビ取りサンプル画像はこちらです。

f:id:yasuo_ssi:20220215231625p:plain

補修元画像

 フィルムの右側に白くカビの痕跡があるのがお判りでしょうか。拡大してみます。

f:id:yasuo_ssi:20220215231829p:plain

カビの痕跡1

f:id:yasuo_ssi:20220215231919p:plain

カビの痕跡2

 いやはや、全く... 空の方はあまり目立たないにしても、黒っぽいところは、白々と鮮明な痕跡があります。

 で、どうやって補修するのかというと、GIMPなどのレイヤー編集をサポートする画像編集ソフトを使って補修します。要は、オリジナル画像のレイヤーの上に、カビの部分を塗りつぶすレイヤーを置き、その上のレイヤーに、カビの部分を透過するマスクを掛けて補修する、というイメージです。

 

1. カビ部分透過マスクの作成

 まず、拙作の相対RGB色マスク画像作成ツールを使って、カビ部分を透過するマスクを作成します。既にImageJや拙作のプラグインがインストールできているという前提で説明します。

 ImageJを起動し、新・輝度マスク (Luminosity Mask) 作成ツールを動かします。ファイル読込ダイアログが開くので、補修したいファイルを指定すると、以下の輝度マスク作成パラメータ指定ダイアログが開きます。

パラメータ指定ダイアログ

 

 カビの部分は白いまま残したいのでポジマスクを作成します。ですので [Making Lightness Negative Mask] のチェックは行いません。

 問題は Upper Threshold と Lower Threshold の設定です。Upper Thresholdは最大値の255で良いとして、Lower Thresholdはなるべくカビ周辺の地の明度に近いなるべく高い値を指定します。従って、空の部分のカビを補修するマスクは、空の明度の値 (この画像の場合は、220程度) をLower Threshold に指定します。従ってカビ周辺の本来の地の色に応じて複数の補修マスクを用意し、複数の補修レイヤーを使う必要があります。なお、プレビュー画面を見ながら値を決定すればよいと思いますが、写真の部分、部分の明度を計算する必要がある場合はGIMP等を使って測ってください。相対RGB色マスク画像作成ツールは明るさを8bit相当の値(0~255)で指定するので (これはImageJが8bit画像を扱うことを基本にしているためです)、明度を 0~100%で測るツール (例えばARTなど) で明るさを測る場合は、その値に 2.55 を掛けて計算してください。

 [Mask Transparency Factor] は自動計算してくれますが、これで不適当だと思う場合はマニュアルで指定しなおしてください。

空補修マスクの場合のパラメータ設定

 上の設定でできた空部分補修マスクは下記のようになります。ファイル名は、

originalfilename_L_Zonemin-max_L_Posi_xTransparencyFactor_Mask_Binded.tif

になります。上の緑の部分は元のファイル名やパラメータの設定によって変わる部分です。L は Lightness を使ったマスクという意味で、他のチャンネルを使った場合はここが変わります。min, max は 8bit 相当値でマスク閾値の最低値と最高値が入り、TransparencyFactor は具体的な透過度の値が入ります。

出来たマスク

 カビの部分が白々と見えます。

 なお、本ツールを使わずにマスク編集をサポートした画像処理ソフトで同様なマスクを作って編集することも可能かとは思いますが、複数のマスクをそれぞれ作成して組み合わせないといけないので、かなり面倒かと思います。一発でこのようなマスクが作れる点が本ツールの特徴です。

 同様な要領で、電車の暗い塗装部分の補修マスク等も作っていきます。こちらは、透過係数をマニュアルで 4 にしてみました。

濃い部分の補修マスク Lower Threshold = 128に設定

 これは、主に右端の連結面のカビを補修するためのマスクです。右側にカビが白々とあるのがお判りでしょうか。

 要はカビが生えている部分の地の明るさの段階に応じて複数のマスクが必要ということです。それぞれのマスクを本ツールを使わずに作成するとすると、1箇所に付き2−3枚のマスクを組み合わせないと同様のマスクが作れないので、相当な手間になります。また作成したマスク画像は、ここではGIMPを使って例示しますが、レイヤーマスク編集をサポートした画像処理ソフトならどれでも使えます。

 

2. GIMPでの編集

 まずオリジナルファイルをGIMPに読み込みます。読み込んだらカビ部分を補修する塗潰しレイヤーを作成します。どうやるかというと...

f:id:yasuo_ssi:20220215235022j:plain

カビていない空の部分を範囲指定してコピー

 まず、カビていない空の部分を範囲指定します。次にそこをクリップボードにコピーします。それを新たなレイヤーとしてカビの部分に当たるように貼り付けます。GIMPでコピーした部分を新たなレイヤーとして貼り付ける場合は、一旦 Ctrl+V でコピーした部分を貼り付けると下記のように[フローティング選択範囲]レイヤーが現れます(下の図はレイヤーダイアログ)。

f:id:yasuo_ssi:20220216113604p:plain

コピーした部分を新しいレイヤーとして貼り付ける

 この状態ではまだ未確定ですが、単純にEnterを押すと、下のレイヤーに張り付いてしまい別のレイヤーになりません。そこでこの状態でレイヤーダイアログの一番左下のボタンを押します。すると、新規別レイヤーとして貼りつきます。この点はPhotoshopに慣れた方は戸惑う部分です(Photoshopはデフォルトで新規レイヤーとして貼りつきますので)。これが補修用塗りつぶしレイヤーになります。

 これを空のカビの部分を全面的に覆うように繰り返していきます。カビのない部分は覆う必要はありません。なお最初に新規別レイヤーを作成した後は、残りのコピーはこの別レイヤーに上書きする形で貼り付けを繰り返します(オリジナルの背景レイヤーには貼り付けないでください)。

f:id:yasuo_ssi:20220215235451j:plain

コピーした部分をカビている部分に貼り付けているところ

 貼りつけたときに、下のオリジナル背景レイヤーの画像が隠れますが、構いません。

 一通りかびている部分のカバーが終わったら、[レイヤー] → [下のレイヤーと統合] を使って、補修を行うレイヤーを1枚の塗潰しレイヤーにまとめた上で、下図のように塗潰しレイヤーのサイズをキャンバスに合わせます

f:id:yasuo_ssi:20220215235834j:plain

レイヤーをキャンバスに合わせる

 塗潰しレイヤーのサイズがキャンバスと同じになったら、塗潰しレイヤーに 1. で作成したマスク画像をマスクとして貼り付けます。なお、GIMPに拙作のマスクとして画像を貼り付けるプラグインを導入していると便利です。なおサイズを合わせないでマスクを掛けるとマスクがずれます

f:id:yasuo_ssi:20220215235741j:plain

塗潰しレイヤーにマスクを設定

f:id:yasuo_ssi:20220216223924p:plain

レイヤー関係図

 マスクを掛けると、塗潰しレイヤーより暗い部分は、マスクによって透明になるので、隠れていた下の画像が現れます。但し塗潰しレイヤーより明るい部分は、その部分だけ塗潰しレイヤーを消しゴム等で消して透過させて、下の画像が浮き出るようにしなければなりません。下図の場合、車両の入線表示器が空の色より明るいので、その部分はレイヤーを消しゴムでけして、下にある表示器が見えるようにしているところです。なお、カビの痕跡は、下図のように拡大すると、完璧に消えているわけではありませんが、大幅に目立たなくなっています。

f:id:yasuo_ssi:20220216000855p:plain

空の色より明るい部分を消しゴムツールを使って浮きだたせているところ

 下図は、同様に、照明灯部分に消しゴムツールを当てて、照明灯の傘が見えるように補正しているところです。

f:id:yasuo_ssi:20220216001058j:plain

同上 (照明灯部分)

 そして、下の図はオリジナル背景レイヤーを不可視にして、マスクを掛けた塗りつぶしレイヤーを浮きだたせたところです。これがオリジナルレイヤーの上に当たって、カビている部分を補修するのです。

f:id:yasuo_ssi:20220216001347j:plain

カビ部分塗潰し補正レイヤー

 マスクの黒い部分が透過しています。この部分は背景レイヤーが見えるようになっている部分です。白っぽいところは、カビ部分を塗りつぶす部分です。この塗潰しレイヤーと背景レイヤーの画像を統合すればカビの痕跡が補修できるという寸法です。

 今回、塗潰しレイヤーには、省力化のために単にカビていない空を貼り付けただけですが、まじめにやるなら、例えば上の照明灯の場合、照明灯の支持部分を塗りつぶしレイヤー上で描き込んだりすると、もうちょっと正確な補修ができます。だったら、最初から一から絵を上書きして補正すれば... という声もあるかもしれませんが、1から絵を上書きで書くと、既存の部分とのつながりが不自然になりがちです。空のような比較的色が薄い場合はカビの部分だけ塗潰し部分を残すマスクを掛けたほうが補修部分と非補修部分が自然につながりやすく見た目も自然になりやすいのです。従って補修にあまり神経・時間を使わなくてもまずまずな結果が得られやすいということです。

 同様な要領で、色の濃い部分の補修も、さらにレイヤーを重ねて行います。但し、色が濃い場合はマスクの境界部分が目立ちやすいです。この場合、消しゴムツールを使ったり、あるいは部分的にぼかしを入れるフィルターを使って、マスクの境界線をぼかすとうまくいきます。

オリジナルマスク

消しゴムツールを使ってぼかしを入れている所

 消しゴムツールを使ってぼかしを入れる場合は、不透明度を下げ、硬さ (hardness) も下げるのが良いでしょう。下は、部分的にぼかしを入れて、境界線をぼかしています。

部分的にガウスぼかしを掛け、マスクの境界線をぼかす

 そして最後に画像を統合して出力すれば補修は終了です。

f:id:yasuo_ssi:20220216002410p:plain

補修結果

 なかなか完璧には行きませんが、おおむねカビの痕跡が目立たない程度にはなりました。

 この方法はカラーネガでも同様に活用できるかと思います。

---------------------------

こちらの記事もご覧ください。

yasuo-ssi.hatenablog.com