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

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

決定版! 不均等黄変・褪色ネガ写真のデジタル補正術 (5-3) (2022.7 ハイブリッド補正対応版)

f:id:yasuo_ssi:20210310145522j:plain

[2022.12.25補訂]

 チュートリアルビデオをハイブリット補正対応版に更新しました。なお今回から5-2の内容と5-3の内容が一本のビデオになっています。

[2022.9 補訂]

 本記事は、2022.9.9にアップした Bチャンネル再建法補正ツール Ver. 4.6に合わせ、一部記事内容を補訂しました。

目次

1. 本連載記事の概要 

2. 今まで紹介されてきた経年劣化による変褪色写真の補正術 

3. 写真補正の原理    

4. Bチャンネル再建法による不均等黄変・褪色ネガ写真補正の方法                

5-1. 具体的な補正実施手順 - 準備

5-2. 具体的な補正実施手順 - ImageJによる作業

5-3. 具体的な補正実施手順 - GIMPによる作業 (本記事) 

6-1. 追加マニュアル補正の実施 - 補正不完全の原因分析と追加補正方針の決定 

6-2. 追加マニュアル補正の実施 - 追加編集作業の実際

補足. GIMPの代わりにPhotoshopで不均等黄変画像の編集を行う

補足. 標準的なBチャンネル再建法(+汎用色チャンネルマスク作成ツール)による黄変写真補正過程

チュートリアルビデオ. 決定版! 不均等黄変・褪色ネガ写真のデジタル補正術・チュートリアルビデオ

練習問題. 黄変ネガカラー写真補正の練習問題

 本記事は、2022年7月28日公開のBチャンネル再建法用ImageJ, GIMP用プラグインを使って、ハイブリッド補正を実行した場合のGIMP上での編集手順を記したものです。

 従来アルゴリズムによる補正を実行した場合は、こちらの記事(2021.12版)を、またエキスパートモードを使って拡張擬似フラットフィールド補正のみを適用した場合は、こちらの記事をご参照下さい。

5. Bチャンネル補正法による具体的な補正実施手順

5.3 GIMPによる作業

編集作業ワークフロー

チュートリアルビデオ (5-2~5-3相当分)

youtu.be

■ImageJで作成した素材ファイルのGIMPへの読み込み

 ImageJによる編集素材ファイルの作成が終わりましたら、GIMPを立ち上げます。私の作成したPlug-inのインストールが終わっていれば、GIMPのメニューに下図のように[My Plugins]という項目がありますので、その下の[黄変写真補正ツール Ver2]もしくは[Photo Adjustment Ver2]→[Load Files...] をクリックします。

f:id:yasuo_ssi:20210613234109p:plain

 

 するとファイル選択のダイアログが出ますので、ImageJによる編集素材ファイルを作る変換元のオリジナルファイルを指定します(例では変換元ファイル名がTarget.tifになっています)。

f:id:yasuo_ssi:20210614000311p:plain

 

 

f:id:yasuo_ssi:20210613235915p:plain

 

 ここでOKを押しますと、ImageJで作成したファイルを、GIMPの単一のファイルのレイヤーとして適切な順番で読み込み、近景補正レイヤー (オリジナルファイル名+ _B_foreground.tif)、遠景補正レイヤー(オリジナルファイル名+ _B_background.tif)、および周辺補正レイヤー(オリジナルファイル名+ _B_G+R.tif)に対して、マスク素材ファイルをマスクとして読み込むところまで実行します。なお、変換元ファイルは読み込みません。

f:id:yasuo_ssi:20210614001612p:plain

 

 なお、読み込み直後は、それぞれのレイヤーのマスク編集モードは有効になっていますが、マスク表示モードにはなっていないのでご注意ください。

f:id:yasuo_ssi:20210123152228j:plain

プラグイン実行直後 マスクまで読み込んでいる

 なお、ここで一点注意です。ImageJで処理した16bit画像をGIMPで読み込む際にエラーメッセージが出ます。この理由は、ImageJで16bit以上のカラー画像をTIFFファイルに保存すると、他のソフトウェアとは異なる独自の形で保存するからです。すなわちRGBチャンネルをチャンネルごとに異なるページのマルチページTIFFとして保存します。その際に、各ページの色チャンネル情報を独自のタグで保存します*1。このファイルをマルチページTIFFが読める通常の画像処理ソフトに読み込むとモノクロの3ページのTIFFとしてしか表示してくれず、またImageJが付した色チャンネル情報のカラータグも認識できません (マルチページ非対応の画像処理ソフトではRチャンネルのみがモノクロで表示されます)。このカラータグは、各チャンネルをばらばらのファイルに保存したときも付されます。ですのでこのImageJ独自の情報タグが読めないと、エラーメッセージが盛大に出るのです。

 従ってエラーメッセージは気にしなくて大丈夫です。OKを押してやり過ごしてください。

 なお、各レイヤーの役割に関しては以下にまとめました。

yasuo-ssi.hatenablog.com

■カラープロファイルの変更

 ここで、一点注意する必要があります。ImageJにはカラーマネジメント機能がありません。これは生物研究用画像はガンマ補正がないこと (scRGB形式) を前提としているためです。従って、ImageJの作成したTIFFファイルはiccプロファイルが埋め込まれていない画像です。これをGIMPに読み込むとデフォルトでsRGB画像と解釈します。もしオリジナルの画像が、sRGBでない場合は(例えばadobe RGBなど)、読み込んだところでカラープロファイルの割り当てを行わなくてはなりません。この割り当てはRGB合成を行った後でも構いません。

f:id:yasuo_ssi:20211125182249p:plain

カラープロファイルの割り当て

 指定する場合は、メニューの[画像]→[カラーマネジメント]→[カラープロファイルの割り当て] を選択し、適当なプロファイルを割り当てます。この時カラープロファイルの変換を選ばないように注意します。変換にしてしまうと、RGB値も変更されてしまいますが、RGB値を変えることなくプロファイルのみ変更・割り当てることが重要です。なお、GIMPにおける色空間(カラースペース)の変換についてはこちらの記事もご参照ください。

 

■暗部補正レイヤーの作成

 ここまで終わったら、RおよびGチャンネル(上から1, 2番目のレイヤー)の表示を、レイヤーの左側の目のアイコンをクリックして、オフにします(目のアイコンが消えます)。そして[変換元ファイル名]_Dark.tifレイヤーが表示されている状態にして、最明部をツールボックスの[色域を選択] ([判定基準]はデフォルトの[Composite]で良いです) でクリックして選択し、Deleteキーを押して削除し透明化します。このとき[しきい値]はなるべく小さい値(0または1程度)にしてください。これが暗部補正レイヤーになります。なお、Bチャンネル画像を見て、暗部の情報飽和が起こっていないようであれば、暗部補正レイヤーは使わなくてもかまわないので、この過程はスキップして構いません。

f:id:yasuo_ssi:20210613205535p:plain

Dark.tifレイヤーの最明部を[色域の選択]で選択したところ
この後Deleteキーを押し、選択したところを透明化し、暗部補正レイヤーとする
なお必要に応じてペイントツールでさらに追加の画像編集を行うことも可

 暗部補正レイヤーの編集が終わったら、レイヤーダイアログの暗部補正レイヤーの左の目のアイコンをクリックして目の表示を消します。そして次の補正レイヤーの編集に移ります。

■周辺部情報抜け補正レイヤーの編集

 次は、周辺部分情報抜け補正レイヤーの編集です。下記の2枚の画像を見てください。

f:id:yasuo_ssi:20210101192438j:plain

周辺補正の必要性を検討 (右は必要)

 左側の画像は、周辺部の青紫化はあまり進んでいないようです。若干上部が青紫がかっているようですが、通常の遠景補正レイヤーで補正可能範囲かと思います。それに対し右側の画像は周辺部が右端部を除いて青紫色に変色しています。これはBチャンネルの周辺部が褪色によって明るくなり、情報抜けが起こっているのです。空が青紫になっているのはごまかしがききますが、特に下の茶色のバラストが青紫になっているのは近景補正レイヤーで補正しきれません。この右側の画像のようなケースは周辺部の情報抜けを補正する必要があります。周辺部補正が必要ない場合は、このレイヤーは非表示にしてスキップして下さい

 周辺部補正レイヤーのレイヤー名は、"[変換元ファイル名]_G+R.tif"となっています。このレイヤーに既にマスク素材画像 [ファイル名]_Periphery_Adjst_Mask.tif のイメージがマスクとして貼りついているはずです。そこで、コンテキストメニューを使って、マスク編集を行うレイヤーのマスクを表示させます。

f:id:yasuo_ssi:20210613205910p:plain

レイヤー上でマウス右ボタンをクリックして
コンテキストメニューを表示させ
さらにレイヤーマスクの表示にチェックを入れる
レイヤーマスクの表示、編集ともチェックが入っているのを確認する

 レイヤーマスクの表示&編集モードになると、レイヤーダイアログにあるマスクの部分が緑で縁取られます。

レイヤーマスク編集&表示モード

 そして、周辺部を残して真ん中を塗りつぶします。なお、レイヤーマスクにおいて、黒く塗りつぶした部分はそのレイヤーを透明化し(=レイヤーの効果を無効化する)、白く残った部分はそのレイヤーを不透明のまま残す(=レイヤーの効果が有効になる)効果があります

周辺部補正マスクの編集

 最後に、レイヤーマスク表示のチェックを外します。すると周辺部補正マスクが表示されます。

上の補正マスクに基づく、周辺補正レイヤー画像

 なお、レイヤーを重ねて表示させた時に、周辺部補正マスクの補正量が過大で、レイヤーの境界がはっきり分かる場合は、レイヤーの不透明度を調整するか、あるいは、マスクのガンマを調整することで、境界が目立たなくなるよう調整してください。

[2022.9追記]

 周辺補正レイヤーの境界が目立つ場合、以下の記事もご参照ください。

yasuo-ssi.hatenablog.com

 下の画像の場合、今のままですと、上端は問題ないのですが、下端の補正量が過剰なようで、上とのつながりが悪くなっています。そこでこのケースでは次のように調整してみました。

ホーム左下側のみ境界線が明確

 この画像では、周辺補正レイヤーの透明度をホーム左下側に合わせて下げると、他の部分の周辺補正量が不足してしまいます。そこで周辺補正レイヤーをコピーし、左下のみ補正するレイヤーとそれ以外のレイヤーに領域を分けて分割します

ホーム左下補正レイヤー

それ以外周辺補正レイヤー

レイヤーの重なり

 そして左下周辺補正レイヤーの透明度のみ下げます。

ホーム左下周辺補正レイヤーの透明度を下げたところ

 なお、周辺部補正レイヤーを、マスクを外して適用すると、単純にGチャンネルをBチャンネルに代入して3原色合成を行った結果と非常に近くなります。

  なお、以下のページで公開している拙作のレイヤーマスク編集モード切替プラグインを導入していますと、レイヤーの編集&表示モード同時切替が可能になりますので、便利です。

■遠景補正レイヤーの編集 

 ここまで終わったら、周辺補正レイヤーの表示をオフにして、次の遠景補正レイヤーのマスクの編集に入ります。遠景補正レイヤー(レイヤー名: [変換元ファイル名]+ _B_Background.tif )を選択して、マスクの表示 & 編集モードに入ります。
 まず行うのは、遠景補正レイヤーマスクの編集です。原則として、遠景補正の対象とならない近景部分をペイントツール等を使って黒で塗りつぶすのが良いと思います。但し、青色部など、ハイブリッド補正モードでは、Gチャンネルの混合によって、本来の青色値より値が下がってしまう部分がありますので、このような場所も遠景補正レイヤーを流用します。この辺りは、画像を見てケースバイケースで判断してください。

 このケースの場合では、電車の青色の部分に遠景補正レイヤーを流用することが適切だと判断したので、そのように編集しました。

f:id:yasuo_ssi:20210613211323p:plain

レイヤーマスク編集 & 表示モードに入ったところ

オリジナル遠景補正レイヤーマスク

 以下の遠景補正レイヤー用のマスクは、本来車体の部分を全部塗りつぶすのが筋ですが、車体の青色部分に、よりB値が明るい遠景補正レイヤーを流用したいので、例外的に青い部分も白抜きしています。

編集済み遠景補正レイヤー用マスク
(近景をすべて塗潰すとともに青色部を透過させる)

 マスク編集が終わったら、再びレイヤーマスク編集 & 表示モードを出ます。このレイヤーが遠景補正レイヤーになります。この編集を終えて、合成表示させた画像が以下です。

合成し、再建したBチャンネル

■近景補正レイヤーのマスクについて 

 近景補正レイヤーは、ハイブリッド補正モードでは、Bチャンネルの明るさがGチャンネルより暗い場合のみ補正を掛けるマスクを掛けるようにしました。これはなるべくGチャンネルとBチャンネルの差を残し、単純にBチャンネルにGチャンネルの画像を代入して合成した結果に近くならないようにするためです。通常は、このマスクは編集する必要はないと思います。

 但し、植物の緑、特に若草など黃緑色の植物はBチャンネルの値がGチャンネルの値よりかなり低いのが通例ですので、補正が適用されてしまい、従来モードと同様、青緑、深緑に色が寄ります。従って、Bチャンネル再建法適用後、従来モード同様、追加補正で植物の緑の復元補正作業を行う必要があります。ただこれに関しては、植物の緑がなるべく青緑に寄るのを抑制するために、ImageJ用プラグインに[植物の緑保護]オプションを設定しています。これをチェックして走らせると、ある程度抑制されますが、完璧ではありません。

 なお、黄変がごく一部に限られており、黄変以外の場所に補正を適用したくない場合は、マスクの適用したくない部分を黒塗りにすると補正が適用されません。これは遠景補正レイヤーのマスクについても同様です。

 また、周辺のBチャンネル情報抜け (画像の周辺が青紫化している) が激しい場合は、そもそも近景補正レイヤーのマスクを無効にしたほうが良い場合があります。上の画像も情報抜けが激しいので、最終的に近景補正レイヤーのマスクを無効にしてBチャンネルの合成を行いました。この判断も画像によってケースバイケースです。

[2022.8追記]なお、これらのマスクに関する詳しい説明は下記をご参照ください。

yasuo-ssi.hatenablog.com

■再建Bチャンネル画像の作成、およびRGB合成

  このように、近景補正レイヤー、遠景補正レイヤー、暗部補正レイヤー、周辺部補正レイヤーの4つがそろったら(なお、暗部補正レイヤーや周辺部補正レイヤー、遠景補正レイヤーが必要ない場合は抜いて良い)、それにオリジナルBチャンネルレイヤー([変換元ファイル名]_B.tifレイヤー)を加えた補正に使うレイヤーのみを可視レイヤーとして指定します(目のアイコンが表示されるようにする)。

 なお、合成前に、特に、周辺補正レイヤー、遠景補正レイヤーの、可視/不可視ならびに、近景補正レイヤーのマスクの有効/無効を切り替えてみて、使った方が良いのか、オフにしたほうが良いのか、よくご検討ください

f:id:yasuo_ssi:20210101232944j:plain

f:id:yasuo_ssi:20210613211922p:plain

再建Bチャンネル画像に必要なレイヤーのみ可視化する
(目のアイコンを表示させる)

 ここで、再建Bチャンネル画像合成 → RGB合成を行うプラグインを起動します。プラグインのメニュー上の場所は下図の通りです。

f:id:yasuo_ssi:20210613212100p:plain

RGB合成プラグインを起動する

 起動するとまず、"New B"という名の新しいレイヤーとして、上の可視化されたレイヤーを合成して再建されたBチャンネル画像を作成します。編集に含めたくないレイヤーは不可視にしておくと、それらをスキップして新しいBチャンネル画像を合成します。

f:id:yasuo_ssi:20210613212938p:plain

新たなレイヤーとして合成・作成された補正済みBチャンネル

 引き続き既存のR, GレイヤーとNew BレイヤーをRGB合成して、Bチャンネル再建法を適用済みの補正画像を新たな画像ファイルとして作成します。GIMP形式の、xcfファイルとTIFFファイルの2本を出力します。ファイル名は[変換元ファイル名]+ _補正1.tif (もしくはxcf) になります。

RGB合成が終了したところ

 これで基本補正が完成しました。この後、相対RGB色マスク画像作成ツールやARTを使って、追加色調補正を行っていきます。追加色調補正については、当マニュアル(6-1)以下をご覧ください。このページでの手順の説明は、基本的にはここまでとさせていただきます。但し、参考までに以下に追加補正後の結果を掲げます。

追加補正後の最終編集結果

 この追加補正過程の詳細はこちらをご覧ください。

  オリジナルは以下です。

f:id:yasuo_ssi:20201109210402j:plain

補正前 オリジナル

 なお、上記の編集作業は、Photoshopでも代替可能です。編集の仕方は、「補足. GIMPの代わりにPhotoshopで不均等黄変画像の編集を行う」をご参照ください。ただ、現在はGIMP上での作業の自動化ツールを充実させましたので、Photoshopでの編集にこだわりたい方でも、GIMPで一通りRGB合成まで進めた後、一旦Phothoshop形式で出力して、それをPhotoshopで読み込んで編集を継続したほうが良いと思います。

 

■Bチャンネル再建法の弱点とその対策

 ところで、本補正法のメインターゲットは、補正に手こずるやっかいな不均等黄変と、周辺部の青紫抜けの改善にあります。そして、Bチャンネルの再建に主としてGチャンネルの情報を流用します。この結果、ピクセルにおいてBチャンネルの値とGチャンネルの値が近づく傾向にあります。それを少しでも改善しようと近景補正レイヤーと遠景補正レイヤーを分け、さらにマスクも工夫していますが、それでも基本的にGチャンネルをレファレンスとしていますので、まだ問題は残るケースがあります。例えば、本補正法で十分補正できない典型例として肌色や鮮やかな若葉の黄緑色表現があります。肌色の場合基本的に R > G > B の値を取り、かつ中程度の明るさの部分 (グレースケールで100~120前後) でGとBの値の落差が比較的大きいです (一般的に B が G より40~50低い値を取る)。また、新緑の場合、G > R > Bとなり、より鮮やかな新緑ほど、GとRの値が近くなる一方、B値は低くなります。新緑でなくても植物の緑はG > R > B となり、新緑でない場合は G > Rの差がやや開く一方、B とGやRの間隔がやや狭まりますが、G > R > Bという順は基本的に変わりません。しかし、この手法ではGとBの値が近づきますので、肌色や植物の緑はおおむねあまりきれいに出ません。以下に、このように本手法で補正を掛けただけではダメな典型例を掲げます。

 


 この写真は、以下のブログに補正困難な例として掲載されているものを、一旦本ブログで紹介している技法を使って補正を掛けたものです。このブログの筆者のudiさんのご厚意で許可をいただいて掲載しております (再転載はご遠慮ください)。

udimac.livedoor.blog

 オリジナル写真と比較すると、不均等黄変は消えているのはわかりますが、全般的に冴えません。本補正技法の必然的結果としてB値とG値が近接してしまうからです。このような部分については、本技法による補正結果をベースに、筆者が提供している汎用色チャンネルマスク作成ツールを使ったり、あるいはフォトレタッチソフトの色域選択機能とトーンカーブなどの色調補正機能を組み合わせて、個別に補正をかけることになります。ただ一番厄介な不均等黄変は取れていますので、補正作業はだいぶ楽になります。このサンプルではB > Gでなければならない領域と、G > Bでなければならない領域が半々混在しています。本技法を適用しただけではだめで、追加補正、いわばポストプロダクションが必要な典型的ケースです。次回はこの写真を例に、GIMPの色域指定選択機能を使ったポストプロダクション術を徹底解説します。

■その他追加補正

 その他一般的に、ネガカラーフィルムの場合マゼンタ被りの傾向があるので (一部 Vuescan 等による取り込みを除く) これ以外にマゼンタ被りの補正が必要な場合が多いと思います。

 さらに、黄変が激しい場合、Bチャンネルへのダメージだけでなく、マゼンタ~赤にも影響が出る場合があります。以下にその例を掲げます。

オリジナル

Bチャンネル再建法適用のみ

 この空の部分のマゼンタ被りは、単に一般的なネガフィルムのマゼンタ被りの傾向のみならず、やはり黄変に伴うダメージと思われます。なお、黄変に伴うダメージは、マゼンタ/Gチャンネルの変異の場合もありますが、Rチャンネルへの変異の場合もあります。いずれにせよ、追加補正が必要です。

 なお、相対RGB色マスク画像作成ツールを使ったマゼンタ補正マスクの作成方法については以下をご覧ください。 

yasuo-ssi.hatenablog.com

 それ以外の相対RGB色マスク画像作成ツールの使い方については、以下をご参照ください。

yasuo-ssi.hatenablog.com 

 

 なお、本連載記事で紹介した写真補正技法やソフトウェア (Plug-in) は個人的用途および非営利目的であれば自由に使っていただいて構いませんが、本技法を使って何らかの成果 (編集した写真等) を公表する場合は、本記事で紹介した技法を使った旨クレジットをつけて公表していただくことをお願いします。

 なお、営利目的で利用される場合は別途ご連絡ください。

 また、私の作成したPlug-inも自由に改変して使用していただいて構いませんが、その成果を公表する場合はご一報下さい (公表しない場合は特に連絡は必要ありません)。またその改良した結果を私の方で自由に利用させていただくこともご了承下さい。

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

以下の記事もご参照ください。

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com

 

f:id:yasuo_ssi:20201101115651p:plain

 

*1:おそらく、このタグ形式はDICOM (Digital Imaging and Communications in Medicine:医用デジタル画像および通信) 対応タグと思われます。