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

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

不均等黄変ネガ写真 Bチャンネル再建法補正ツール簡易版 (ImageJ & GIMP対応) 公開

f:id:yasuo_ssi:20210310145522j:plain

本ページで紹介するツールの概要
・補正の対象となる黄変写真は軽~中度に限定されるが、GIMP等によるマニュアル・レイヤー編集の必要なく、Bチャンネル再建法による補正ファイルを得られる簡易補正ツール

 

 さて先日、ネガカラー光被り補正ツールを考案・作成して公開しましたが、これを応用して、従来のツールより簡単に不均等黄変ネガカラー写真を補正する、簡易版のBチャンネル再建法補正ツールも考えてみました。通常のBチャンネル再建補正法ツールだと、レイヤー編集を行って再建Bチャンネル画像を作成していましたが、今回公開する簡易ツールでは再建Bチャンネル画像作成のためにレイヤー編集を行う必要はありません。但し、光被り補正ツールと同様正常なサンプリング領域のデータをもとに補正を行いますので、適正な補正結果を得ようとすると、補正部分と似たような画像パターンの正常なサンプリング領域が一定幅の縦列として確保できることが必要になります。

f:id:yasuo_ssi:20210223203502j:plain

図 1 補正の仕組み

 従って黄変が画像全体に広がっているような重度に損傷した画像は不向きで、適切な補正結果を得るには、黄変・褪色部分が画像の一部にとどまっており、かつ補正領域とサンプリング領域の画像パターンが似ているということが条件になります。従って本ツールの適用可能対象は、基本的には損傷程度が中程度以下の画像が対象ということになります。

 いわば、フルバージョンのBチャンネル再建法ツールにおいて、マニュアルでレイヤーマスク編集を通して行っていた補正編集作業を、簡易ツールでは正常なサンプリング部分と変色部分を比較することで自動化し、レイヤーマスク編集を省いていることになります。

 簡易ツールは対象が限定される一方で、メリットもあります。フルバージョンですと補正が全面にかかります。しかし原理的にGチャンネルとBチャンネルの値が接近するという特徴もありますので、補正の必要ない部分にもその副作用が及びます。一方、簡易バージョンですと補正範囲が限定されますので、補正の必要ない部分に副作用が及びません。その意味でも、黄変部分が画面の一部にとどまっている場合は、簡易ツールの方にメリットがあります。

 ただ計算時間は結構かかり、私の環境で、補正領域が全体画像の4/5ぐらいにわたる場合、16bit フルHD(1920 x 1080)程度の画像で2-3分、16bit 7500 x 5000程度の画像だと、10分強かかりました。補正領域が一部にとどまる場合はもっと時間は短縮されます。

 補正するパラメータを、何度か変えて試行してから確定しなければならない場合も多いと思いますので、補正画像のサイズが大きい場合は、1200 x 900 程度に縮小したパイロット画像を使って最初に何度か試行した上で、最後に決定したパラメータを使って本番の画像を補正するようにしてください。なお、私がこのツールを使って何枚かの写真を補正した経験では、縮小したパイロット画像では補正むらがあるケースでも、大きいオリジナルサイズの画像に補正を掛けるとむらが目立たなくなる傾向にありました。

 ツールは今までと同じくImageJ (Fiji Distribution) 対応で、得たい補正画像が8bitならImageJだけで完結します。16bitの画像を得たい場合は、GIMP上でR, G, B画像を合成するプラグインを添付しましたので、これを動かすと一挙にRGB合成した画像を作成します。この理由は、このツールのImageJプラグインにおけるチャンネル合成に、 ImageJの RGBStackConverter における convertToRGB メソッドを使っているのですが、これだとR, G, Bばらばらの画像から16bit RGB画像を合成することができないためです(他の方法で合成が可能かどうかまだ調べられていません)。もちろんGIMPよりは手間がかかりますが、Photoshop等チャンネル合成機能を持つフォトレタッチソフトを使ってマニュアルで合成することも可能です。

 画像によっては、追加の補正が必要になる場合がありうるのは、フルバージョンのBチャンネル再建法ツールや光被り補正ツールと同様です。

 ダウンロード先はこちらです。

 

準備作業

 まず、当然ながらImageJ (Fijiディストリビューション)GIMP (Photoshop等でチャンネル合成を行う場合は不要)がインストールされていることが前提となります。インストール方法については、こちらをご参照ください。

 ダウンロードしたファイルを解凍すると次の3つのファイルが含まれています。

ImageJ用

 Inequally_yellowed_nega_quick_correction_tool.py

GIMP

 Inequally_yellowed_nega_quick_correction_load_files.py

 Inequally_yellowed_nega_quick_correction_load_filesJ.py

GIMP用の2本は、Jが付くほうがメニューで日本語表示になるだけなので、どちらかを使用してください。

 

 これらのファイルをImageJのプラグインフォルダ、およびGIMPプラグインフォルダにそれぞれコピーしてください。

 

-------

使用方法

1) ImageJを起動し、メニューのPluginsを開きます。プラグインを所定のフォルダにコピーしていれば、メニューの下の方に下記のように本プラグインの名前 (Inequally yellowed nega quick correction tool) が表示されますので、それをクリックして起動してください。

f:id:yasuo_ssi:20210307212811j:plain

図2. ImageJにおける補正ツールの起動

2) すると、ImageJに画像ファイルが読み込まれていない場合は、補正ファイル選択ダイアログが出るのでファイルを選択します。すると補正画像を読み込みます。既に、ImageJで画像ファイルを開いている状態であれば、そのまま4)に行きます。

f:id:yasuo_ssi:20210307213110j:plain

図3. 補正ファイル選択ダイアログ

3) 次にパラメータ入力ダイアログが出ます。以下の項目についてそれぞれ指定します。

・GチャンネルのBチャンネルへの混入最大比率
 (あくまで最大比率であり、常にこの比率で混入されるわけではない)

・B値の最大引上げ率
 (これも最大引上げ率であり、一律この値で引き上げられるわけではない)
 ※黄変が強い場合、引き上げた方が良い

・補正値計算時の縦方向のゾーン分割数 (デフォルトは25)

・作業ウィンドウの表示/非表示

・B値がG値を下回る(黄色い)ときのみ補正するかどうか (デフォルトは No)

f:id:yasuo_ssi:20210313201146j:plain

図4. パラメータ入力ダイアログ

4) パラメータ入力ダイアログをOKすると、補正範囲指定ダイアログが表示されます。Preview ROI チェックボックスにチェックをつけると、数値で指定した範囲が画面上に、黄色い四角でプレビュー表示されます。OKボタンを押して確定です。

 因みに、プレビュー画面の左上にファイル名と、赤字で画像が何ピクセル x 何ピクセルなのかという表示が出ますので、それを参考に指定する範囲の x , y 座標を決めてください。また画像の左上端が x = 0, y = 0の原点で、下に行くほどyの値は増え、右に行くほど x の値が増えます。

 なお、予めファイルを読み込んでいて、プラグイン起動前に、画面上で既に選択範囲を指定している場合は、補正範囲指定ダイアログにその範囲が表示されます。

f:id:yasuo_ssi:20210313201420j:plain

図5. 補正範囲指定ダイアログ

5) 補正範囲指定ダイアログをOKすると、サンプリング範囲指定ダイアログが表示されます。ダイアログには、先ほどの補正範囲の値が、サンプリング指定ダイアログに表示されている状態ですので、その値と重ならないよう補正範囲の横の別の範囲を指定しなおしてください。Preview ROI チェックボックスにチェックをつけると、数値で指定した範囲が画面上に、黄色い四角でプレビュー表示されるのは同じです。OKボタンを押して確定です。

f:id:yasuo_ssi:20210313202527j:plain

図6. サンプリング範囲指定ダイアログ

 なお、サンプリング領域はすべて0にすると、自動的に補正範囲のすぐ左、画像幅1.5%の範囲をサンプリング領域として取ります。それではまずい場合、必ずサンプリング領域を指定してください。

6) その後作業用ウィンドウ表示にしていれば、読み込んだファイルが表示され、プラグインが始動します。ファイルが最初に表示されるまでファイルの解析を行いますので、1分ほどかかります。

f:id:yasuo_ssi:20210307220205j:plain

図5. プラグイン実行中

7) 既に述べたように、ファイルサイズが大きくかつ、補正範囲が広いとかなり時間がかかります。但し計算している最中は、下記のようにコンソール画面に計算過程が表示されるので止まっているのではないことが分かります。ここが何分たってもずっと何も動かない状態だと、何かエラーが発生して止まっているということです。なおファイルサイズが大きい場合、正常でも1分程度動かないことはあり得ます。

f:id:yasuo_ssi:20210307220221j:plain

図6. 計算中のコンソール出力画面

8) 補正が終了すると、8bitの補正済みの画像を表示して終了します。終了時に作成されるファイルは下記のとおりです。

[ファイル名]_R.tif
 Rチャンネル ファイル
[ファイル名]_G.tif
 Gチャンネル ファイル
[ファイル名]_B2.tif
 補正済みBチャンネル ファイル

[ファイル名]_Merge_8bit.tif
 8bitの補正済み完成ファイル

 [ファイル名]というところには、オリジナルファイル名が入ります。例えばオリジナルファイル名がsample.tifなら、8bitの完成ファイル名は、sample.tif_Merge_8bit.tif になる、ということです。

 得たい画像が8bitならこれで一旦終了ですが、16bitの補正画像を得たい場合は、GIMPを使って補正画像を作成します。なお、GIMP以外のチャンネル合成をサポートしたフォトレタッチソフト (Photoshop等) を使って合成していただいても結構ですが、その方法に関する紹介は省略します。なお、Photoshop Elementsで活用される場合は、Elements自体、そもそも色チャンネル編集にも16bit画像にも対応していませんので(16bit画像は読み込んだ時に自動的に8bitに変換し、編集結果は8bit画像としてしか保存できない)、ImageJプラグインで得られる合成画像で十分です。

f:id:yasuo_ssi:20210307220247j:plain

図7. ImageJ用プラグインの実行終了状態

9) GIMPを起動します。プラグインをコピーしていれば、メニューの[My Plugins]の下に、[不均等ネガ補正ツール(簡易版)]と書かれたメニューがありますので(但し日本語版プラグインを導入した場合)、そこから[ファイル読込...]をクリックします。

 

f:id:yasuo_ssi:20210307224952j:plain

図8. GIMPにおけるプラグインの起動

10) ファイル名選択ダイアログが出ますので、補正元となったオリジナルファイル名を指定します。

f:id:yasuo_ssi:20210307225016j:plain

図9. オリジナルファイルの選択

11) すると、バラバラのR, G, Bファイルを読み込み、それからチャンネル合成を行い、RGBファイルを作成し、さらにTIFFファイルとしてエクスポートするところまで一挙に行います。TIFFファイルは、[オリジナルファイル名]+_compose.tif という名で出力されます。既に同名のファイルがあると予告なく上書きします。中間過程のファイルはGIMPに表示されたままですので、必要に応じて保存するなり、消すなりして下さい。

f:id:yasuo_ssi:20210307225037j:plain

図10. RGBファイル合成終了直後

12) 光線被り補正ツールと同様さらに追加補正が必要になる場合があると思います。この追加補正には、2月末に公開した、Bチャンネル再建法 追加補正サポート用マスク作成ツールをご活用ください。あるいはフォトレタッチソフトの色域指定を使った補正を行ってもOKです。またこの追加補正をGIMPで行うには、やはりすでに公開している「GIMPを便利に! プロジェクト」で紹介しているプラグインツールの導入が便利ですので、強くお勧めします。

 

 ともあれ、今回公表する簡易補正ツールは、正常サンプリング領域が取れることが条件になり適用可能な対象画像は限定されるものの、レイヤー編集を行う必要は一切ありませんので、GIMPPhotoshop等のレイヤー編集に慣れていない方にも気軽に利用いただけるかと思います。

  なお、とりあえず走らせるところまでで手いっぱいで、まじめにエラー処理、例外処理などをちゃんとやっていませんので、異常値を入れたりすると異常終了したり、キャンセルボタンを押してもそのまま止まらないなどの不具合がまだまだあるかと思います。

 ご報告いただければなるべく対応したいとは思いますが、私のプログラミング力の限界もありますので、あまり期待しないでください。

  なお、次回、今回の簡易補正ツールを使ったファイル補正事例を紹介します。

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

 また、本ソフトウェアは現状のまま提供されるものし、作者はこれを使ったことによるいかなる損害補償等にも応じられないことを了解の上使っていただくものとします。
 但し、もしソフトウェアのバグがありましたら、ご連絡いただければなるべく改善するよう努めたいと思います。

Bチャンネル再建法解説 目次

1. 本連載記事の概要 

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

3. 写真補正の原理    

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

5-1. Bチャンネル再建法による具体的な補正実施手順 - 準備   

5-2. Bチャンネル再建法による具体的な補正実施手順 - ImageJによる作業   

5-3. Bチャンネル再建法による具体的な補正実施手順 - GIMPによる作業

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

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

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

補足. Bチャンネル再建法 補正ツール簡易版