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

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

黄変フィルム Bチャンネル再建補正法プラグインアップデート版正式公開

f:id:yasuo_ssi:20210310145522j:plain


 今年1月から、黄変フィルム Bチャンネル再建補正法に使う、ImageJおよびGIMPプラグインを徐々にアップデートしてきましたが、今回これを正式に公開します。ダウンロードリンクはこちらです。黄変フィルム補正法の解説ページも、今回のバージョンに合わせて書き換える予定です。バージョンアップ内容は以下の通りです。

 なお、このプラグイン・ソフトウェアを使用していただくにあたって、仮にこれを使った上でどのような損害があったとしても一切無補償であることに同意したうえで、自己責任で使用されるものとします。また不具合等がありましたら、コメント欄にお知らせいただければ幸いです。できる限り対応したいと思います。

  なお、Photoshop用のツールは用意していませんが、もちろんPhotoshopでもImageJで作成した素材ファイルから補正編集作業ができます。Photoshopでの編集作業についてはこちらをご参照ください。

 

■ImageJ用プラグイン

f:id:yasuo_ssi:20210207100909j:plain

図1 ImageJ用プラグイン パラメータ入力ダイアログ

・16bit版と8bit版を統合する(1/2バージョンアップ)とともに、画像のbit精度を自動判定するようにした(今回)。
 [上図 Image bit depth 項目]

・前景補正レイヤー用マスク画像の閾値を 128 と 48から選択するようにした
 [上図 Foreground Mask Threshold 項目]
 ※ 48 は元画像がリニアの場合に選択 (通常は128)

・背景補正レイヤー用マスク画像の閾値を調節できるようにした
 [上図 Background Mask Threshold 項目] (1/2バージョンアップ内容)
 ※なお、元画像がリニアの場合は 48 前後が適切

・背景補正レイヤー用マスク画像の明るさを調節できるようにした
 [上図 Background Lightness 項目] (1/2バージョンアップ内容)

・暗部補正レイヤー用画像の閾値を調節できるようにした
 [上図 Dark part Threshold 項目] (1/2バージョンアップ内容)

・周辺補正レイヤー用画像の閾値を調節できるようにした
 [上図 Periphery Adjst Threshold 項目]

・作業用ウィンドウを表示するかどうかを選べるようにした。
  [上図 Show working windows 項目] 

 

 

 今回、非リニアな画像だけではなく、リニアな画像を扱うことも想定してパラメータを動かせるようにしました。なお一般的な画像ファイルは非リニア(sRGB式 [知覚的] ガンマ補正が掛けられている)です。

 なお、調整できるパラメータが増えて戸惑われるかもしれませんが、まずデフォルト値で走らせてみてください。デフォルト値で不適切でなければ、パラメータをいじる必要は基本的にありません。但し、元画像がリニアな場合は、[Foreground Mask Threshold]で48を選ぶとともに、[Background Mask Threshold]は48前後が標準になります。通常の画像は非リニア (知覚的ガンマ補正済み) なので、まずデフォルト値で構わないと思います。

 なお近景補正画像に明るくしたR画像でマスクを掛けているのは、チャンネル間の多様性を増やすためですが、場合によってはマスクを無効にしたほうがより良い補正結果になる可能性もありますので、そこはトライ&エラーで試してみてください。

 デフォルト値を変更すべき場合は次のような場合です。

[Image bit depth]

・デフォルトはAutoモードになっており、読み込んだ画像に関し、自動的に16bitか8bitか判定する。但し、ImageJが判定に失敗する可能性があり、その場合、Autoモードだと16bitであるとして画像処理を進める。しかし、それでは不適切な可能性があるので、Autoの判定が不適切な場合、デフォルト設定を変え、手動で 16bitか8bitを指定する。

[Background Mask Threshold]

・元画像がリニアな場合 (既述)

・空の色が濃すぎて、デフォルト値だと遠景と近景がうまく分離できない
   → 空のBチャンネルの値に合わせて、閾値を引き下げて(暗くして)みる

・画像全般が、霧がかかっている、雪が積もっている等の理由で白っぽくなっており、デフォルト値だと遠景と近景がうまく分離できない
   → 閾値を引き上げて (明るくして) みる

f:id:yasuo_ssi:20201227160142j:plain

[Background Mask Threshold]値を変更すべきケース

[Background Lightness]

・空の黄変を補正した痕がオレンジ色っぽくなり、十分補正しきれていない
  → 値を多少引き上げて黄色味を減らしてみる
※なお、補正した痕の空がピンク色っぽくなるのは、ここで値を調整するよりも、フォトレタッチソフトでホワイトバランスを使って調整したほうが良いケースが多いです。というのは、補正後の空がピンク色になるのは、スキャナードライバによる全般的(グローバル)なホワイトバランス補正が、黄変部分に引きずられた結果であると、経験上思われるからです。

[Dark part Threshold]

・補正すべき画像が全く出てこない
 → 値を引き上げて、補正できる画像が現れるようにする

・補正画像の範囲が広すぎる
 → 値を引き下げて、補正画像の範囲を減らす

・元画像がリニアな場合 (既述)
 → 値は、標準で20程度で良い

※なお、Bチャンネルの暗部飽和が起こっていなければ、暗部補正レイヤーはそもそも使う必要がありません

[Periphery Adjst Threshold]

・周辺補正部の濃度が濃すぎる

 → 値を引き下げて濃度を薄くしたり補正範囲を狭めてみる
※ここで値を引き下げずにフォトレタッチソフト側で周辺補正レイヤーの透過度を上げるという方法もあります。

・補正部分と非補正部分の境界付近の濃度が薄くなる
 → 値を引き上げて補正範囲を広くしてみる

※なお、Bチャンネルの周辺部分情報抜けが起こっていなければ、周辺補正レイヤーはそもそも使う必要がありません。

 

GIMPプラグイン

 素材ファイルを順番に読み込むだけではなく、レイヤーへマスクをつけるところまで機能を付け加えました(1/17)。さらに今回、レイヤー編集時に確認がしやすいように背景レイヤーを白塗りにしています。

 

 今回のバージョンアップで、昨年7月の時点で考えていたプラグインの機能はすべて盛り込みました。一応今回で完成としたいと思います。

 

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

補足: 元画像がリニア画像の場合の補正素材画像の扱い

 なお、ImageJはカラーマネジメントに対応していないようなので、元画像がリニアであろうが、保存したファイルにはiccプロファイルが書き込まれません。そのためGIMP上で読み込んだファイルはすべてsRGB式トーン再現カーブ補正(ガンマ補正)が掛かったファイルとして読み込まれます。このファイルを正しく扱うには、GIMPで読み込んだ後リニアなグレースケールのカラープロファイルを割り当てる必要があります。

 リニアなグレースケールのカラープロファイルは、おそらくデフォルトでは存在しない可能性が高いので (少なくともWindowsではない)、どこからか入手しておく必要があります。とりあえず Elle Stone氏がフリーで配布しているプロファイル (Gray-elle-V4-g10.icc) がありますので、以下からダウンロードしておき、Windows環境なら C:\Windows\System32\spool\drivers\color に保存しておいてください。

github.com

 ダウンロードが終わったらGIMPのメニュー→[画像]→[カラーマネジメント]→[Assign Color Profile..]をクリックし(下図)、

 

f:id:yasuo_ssi:20210122213035j:plain

図2 GIMP: カラープロファイルの適用

更に、[割当]からカラープロファイルを選びます。すでに一度グレーのカラープロファイルを選択しているなら、ここで選択肢の一覧に出ます。ここでグレースケールのリニアのプロファイルが見当たらない場合は、[カラープロファイルをディスクから選択]を選びます。

f:id:yasuo_ssi:20210122213445j:plain

図3 GIMP: カラープロファイルの選択

カラープロファイルが保存されているフォルダから Gray-elle-V4-g10.icc を選択します。

f:id:yasuo_ssi:20210122213502j:plain

図4 GIMP: ファイルからカラープロファイルを探す

すると、画像が適切な明るさになります。しかしまだこれだけではGIMPはリニアな画像だと認識していないので、次に、メニューの[画像]→[精度]からリニアライトを選択します。

f:id:yasuo_ssi:20210122213527j:plain

図5 GIMP: リニア画像の指定

GIMPの一番上のバーが下図のように、linear integerと表示されるようになったらOKです。

f:id:yasuo_ssi:20210122214904j:plain

図6 GIMP: タイトルバー上の表示

 なお、試しに1, 2枚リニア画像に直して補正を行ってみましたが、非リニアより、リニアの方が補正量が減るような印象でした。たまたまそれらの画像の特性の問題かもしれませんが、無理にリニアに直して補正をする必要はないかもしれません。

 非リニアの画像の方がリニアの画像よりも結果が良さそうな原因としては、非リニアな画像は、人間の知覚域に敏感な部分をデータ的に増幅していますので、そのためである可能性もありますが、はっきりしたことは断言できません。

 

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

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