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

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

GIMP3 プラグイン版 チャンネル再構成ツール - 褪色フィルム画像等補正に有効

 今回 GIMP3 用プラグインとして、チャンネル再構成ツールを作成しました。本ツールの主目的は、褪色フィルム画像の修復や失敗で大きくカラーバランスが崩れた画像などの修復です。かなり褪色が進んだフィルム画像の補正には、ヒストグラム平坦化アルゴリズム (GIMP では、[色] → [自動補正] → [平滑化]) が非常に有効ですが、この方法が有効かどうかは画像によるところがあり、また細かい調整ができません。

 これらを補うために、すでに、2023年に本ツールの ART CTL スクリプト版を公開していますが、今回それの GIMP3 プラグイン版です。ART は、個人的には私が愛用していて高く評価しており、日本語翻訳も担当していますが、若干マイナーですので、よりユーザの多いと思われる GIMP 版を開発しました。

 ART 版との違いは、ART版が ガンマ補正+チャンネルミキサーで構成されているのに対し、今回の GIMP 版は、より柔軟なカーブ設定ができるシグモイドカーブ補正+チャンネルミキサーから構成されている点です。また、プログラミングが難しい分、UI 設定の自由度が高いので、より便利な UI になることを目指しました。その一方で、ART 版ではもとのチャンネル画像に対して、より明るくなる場合のみ適用する、またはより暗くなる場合のみ適用するというオプションがありましたが、現行版にはありません。これについては、とりあえず、補正したレイヤーに対し、相対 RGB 色マスクをかけることで同等の効果が得られますので、それで対応していただければと思います。オプションを増やすかどうかは今後検討しますが、今よりオプションを増やすと、ダイアログが大きくなりすぎ画面からはみ出てしまい、設定できなくなることがあるので、それをどうするかが課題です。

yasuo-ssi.hatenablog.com

■ 使用方法

 本プラグインをインストールすると、メニューの [色] から本プラグインが選択できるようになります。

メニュー位置

 ダイアログは、以下のようになっています。

ダイアログ

・補正対象チャンネルの選択

 ダイアログの一番上は、補正対象となるチャンネルの選択です。本プラグインではここで補正対象となるチャンネルを選択し、実行すると、最終的にそのチャンネルを補正したうえで、そのチャンネルを使った RGB 合成画像を既存のイメージの一番上のレイヤーに付け加えます。

 なおプラグインは1回の実行で一つのチャンネルしか補正できません。2つ以上のチャンネルを補正したい場合は、一旦補正を掛けた結果画像に対し、再度本プラグインを実行し、先程補正したのとは別のチャンネルに対し、補正をかけてください。

 ここで、まず補正対象となるチャンネルを選択した後は、その下のスライダーを使って、当該チャンネルに対して補正を掛けます。

・各チャンネル内での R, G, B 混合比の設定

 この下は、大きく分けると、Red、Green、Blue の三原色に分かれていますが、それぞれの色の最初のスライダーは、補正対象チャンネルに対し、R, G, B をどの比率でミキシングしていくかそのパーセンテージを設定するスライダーです。

 初期値は、もし、補正対象チャンネルが Red なら、R, G, B 比は 100:0:0 となります。補正対象が Green なら、R, G, B 比は、0:100:0、補正対象が Blue なら、0:0:100 となります。このスライダーは、補正対象チャンネルに対し、他チャンネルの情報をミックスすることで、チャンネルを補正するものです。スライダーは、マイナスの値を取り得ますが、この場合は、ミキシングの際に加算ではなく、減算を行います。この R, G, B の比率をすべて合計すると、100 で一定になるようになっています。

・シグモイド・カーブ調整

 本ツールでは、各チャンネルの出力レベルの調整のために、シグモイド・カーブ調整を採用しています。

 上で説明した RGB の混合比率を決定するスライダーの下に、それぞれの色ごとに4つずつのスライダーがありますが、これはミキシング元となるそれぞれの原色のチャンネル画像データに対しシグモイドカーブをかけて出力調整するためのパラメータです。ガンマ補正ですと、下向き、もしくは上向きのカーブしか掛けられませんが、シグモイドカーブですと、変曲点を移動させることによって、対称の S 字カーブ、上向きカーブ、下向きカーブと多様なカーブを掛けられるのがポイントです。

 上で述べたように、変曲点はカーブの形を決定するパラメータで、0 に設定すると、上向きのカーブ、50 に設定するとちょうど左右対称の S  字カーブ、100 に設定すると、下向きのカーブになります。変曲点より下は下向きのカーブ、上は上向きのカーブになります。カーブが上向きだとチャンネル画像が明るくなり、下向きだと暗くなります。

 コントラストはこのカーブの曲がり具合を決定します。値が高くなればなるほどコントラストは高くなり、カーブの曲がりは大きくなります。その値に明るさの変化量が比例します。0 だと直線になり、曲がりません。その場合、チャンネルの明るさは変曲点をどう設定しようが変わりません。

変曲点 5 コントラスト 5 で作成されるカーブ

変曲点 25 コントラスト 5 のカーブ

変曲点 75 コントラスト 5 のカーブ

 これによる作成されるカーブをダイアログ上に表示させたかったのですが、表示余地がありません。作者が作成したシグモイド・カーブプラグインがありますので、それも導入するとどのようなカーブが作成されるか見ることができます (上のキャプチャはシグモイド・プラグインから採ったものです)。

yasuo-ssi.hatenablog.com またカーブは表示できないのですが、このパラメータにより調整されたミキシング元当該チャンネルの補正した画像を見ることはできます。それには、[シグモイドを適用した補正元画像を表示] をチェックしてください。

 なお、今回のプラグインは、基本的にレガシーモード (知覚的色空間) のみで動作します。いくつか試したのですが、どうもレガシーモードのほうが望ましい結果が得られるようでしたので。レガシーモード以外で動作させた場合は、上のシグモイド・カーブプラグインをご利用ください。

 最暗点、最明点は、値が 0, もしくは 1.0 になるポイントを調整します。最暗点以下の部分はすべて 0 になり、切り捨てられますし、最明点以上の部分は、全て 100 となり切り捨てられます。初期値はそれぞれ、当然ながら、0.0 と 100.0 ですが、最暗点を引き上げると画像は暗くなり、引き下げると明るくなりますが、コントラストの弱い眠い画像になります。最明点を引き下げると明るくなり、引き上げると暗くなります。

 これはGIMP のレベル補正に搭載されているホワイトポイント、ブラックポイント調整と同じです。

・RGB合成画像のプレビュー

 そして、今のパラメータで RGB 合成をしたらどうなるかプレビュー表示するには、[RGB 合成画像をプレビュー] にチェックを入れてください。なおこのプレビュー画像はリアルタイムに変化させることができませんので (他のプレビューはスライダーをいじるごとにリアルタイムに変化する)、プレビューを一度表示したあと、パラメータを再調整し、その後どう変化したかを見るには、一旦プレビュー画像をオフにしてから再度オンにしてください。

RGB 合成画像表示

・チャンネル画像の平均値と標準偏差の表示

 また、GIMP版の特徴として、[チャンネル内RGB混合比] というタイトルの右横に、今補正対象となっているチャンネル画像の明るさの値の平均値と標準偏差を表示させています。この表示はスライダーで調整するとリアルタイムに変化します。

チャンネルの平均と標準偏差表示

 この値は、8 bit 画像では 0 - 255 の範囲で、16, 32 bit 画像では 0.0 - 1.0 の範囲で表示されます。この表示の便利な点は、補正すべき量が数値的にわかりやすい点です。通常の風景写真の場合、R, G, B チャンネルそれぞれの平均値や、標準偏差が、全く同じではありませんが、だいたい似たような値になります。差があってもせいぜい 10 〜 15% 以内にとどまります。それがそれ以上の大きな差になっている場合は、明らかに R, G, B のバランスが崩れています。そこで、平均値が大きく上がっていたり、下がっているチャンネルに対して、他のチャンネルと似たような値になるよう、シグモイドカーブで調整を行うことで、比較的簡単にホワイトバランスを調整できます。このとき、補正対象チャンネルと同じ色のシグモイド調整スライダーを動かすのが基本です。

 

■ チャンネル補正の基本的な流れ

 一般的な補正の流れは次のようになります。

1. 補正するチャンネルの選択

 まず補正すべきチャンネルを選びます。これはチャンネル選択を動かして、他のチャンネルより突出して平均値が高い、もしくは低いチャンネルを選びます。3つのチャンネルの平均値がまちまちである場合は、まず、一番外れたチャンネルを一旦補正し終えたあと、再度このツールを起動して次に外れたチャンネルを補正します。

2. シグモイドカーブを使った各チャンネルのレベル調整

 次にシグモイドカーブを使って各チャンネルのレベル調整を行います。基本は、既述の通り、原則は、各対象チャンネル色と同じ色のシグモイド調整のスライダーを使ってレベル調整を行います。平均値が低すぎて、出力を上げたい場合は変曲点を 0.0 もしくはそれに近い値を、平均値が高すぎて、下げたい場合は変曲点を 100.0 もしくはそれに近い値を設定し、次にコントラストを使って変化量を決めます。出力の平均値は変えずに標準偏差だけ上げたい (コントラストを上げたい) 場合は変曲点を 50.0 のままで、コントラストのみ変えます。

 なお、補正量は、R, G, B の出力レベル (明るさ) の平均値が、概ね揃う値になるまでコントラストを上げれば良いので、簡単に各チャンネルの適正なレベルを調整できます。

3. RGBミキシングレベルの調整

 最後に出来上がった画像のニュアンスを調整するために、ミキシング比率を調整します。デフォルトでは、補正対象チャンネルと同じ色のチャンネルの混合比が 100 % それ以外の色の混合比は 0 % となっていますが、これを変えていきます。

 もし 2 までで満足の行く結果が得られていれば、この過程は省略しても構いません。この過程が一番調整が難しいです。そもそもあるチャンネルに別のチャンネルを混合していくという意味はどういう意味があるのでしょうか。これはそのチャンネルの他チャンネルとの差を少なくする、つまり彩度を減らすという意味があります。

 例えば、R チャンネルに対して、G チャンネルのデータを混合していくという意味は、R と G の差を少なくする、つまり、G に対する R の彩度を減らすという意味になります。

 ですので、2までの補正結果で、全般的に赤みがどぎつすぎるという場合、G あるいは B を混合して、赤みの出方を柔らかくする、というような感じになります。ただこのあたりはなかなか直感的に分かりにくいので、トライアンドエラーが必要かと思います。

 また ハイライト部は赤みがドギツすぎるが、中暗部は問題が少ないというような場合は、ミックスする G チャンネルに対して以下のようなシグモイドカーブを掛けた上で、ミックスするというようなことを考えたほうが良いかもしれません。

中暗部を下げ、ハイライト部は若干上がるシグモイドカーブ

 この場合、ミックスする G チャネルに対して変曲点を多少上げた上でコントラストをつけて、ミキシングを適用します。そうすると、中暗部の G のミキシング量は少なめで、ハイライトのミキシング量は高めになるので、ハイライト部がより彩度が低くなるはずです。

 このミキシング量は、全て合算すると、100 になるよう自動調整されます。また、マイナス量も設定できますが、この場合はミキシングの際、加算ではなく減算します。マイナス量を設定した場合は、上とは逆に、チャンネル間の差を拡大する、つまり彩度を上げる方向で補正することになります。

 

 なお、3. の調整は望み通りの結果を得るには、トーンカーブの概念や RGB の原色ー補色の関係をしっかり理解する必要があってやや難しいので、この調整の代わりに、相対 RGB 色マスクをつけたレイヤーを作成してそれで調整したほうがより直感的に分かりやすいかもしれません。

 

 以上の流れは、標準的な褪色画像、ホワイトバランスが大きく崩れた画像に当てはまるものですが、あるチャンネルの損傷が激しくて、そのチャンネル情報を使わず、他チャンネル情報で代替するというような場合は、大きくワークフローが変わってきます。

 なお、後日、本プラグインを使った補正事例をアップしたいと思います。

■ 当ツールの褪色フィルム画像補正効果について

 実は当ツールの褪色画像補正効果は、率直に言って、GIMP の[平滑化] コマンド (ヒストグラム平坦化アルゴリズム) より強力ではありません。[平滑化] コマンドはかなり強力で、特にフィルムやプリントの褪色によって、各チャンネル、あるいは一部のチャンネルのコントラストがかなり下がっていても、結構何とかしてくれます。その一方で副作用もあり、チャンネルのコントラストがあまり下がっていない場合は、あまり良好な結果が得られず、不自然な結果になることがあります。また、GIMP の [平滑化] コマンドは、色諧調が 256諧調、8bit で固定されているので、16 bit 画像では、せっかくの階調が活かせません。このようなケースにおいて、本ツールは有効です。

 なお、筆者は、ImageJ を使った、16 bit 画像でも階調を活かすことのできるヒストグラム平坦化ツールも開発していますので、ご関心のある方はそちらもご覧ください。

 

■ 当プラグインのダウンロード & インストール

 当プラグインこちらからダウンロードしてください。また、プラグインのインストールに関しては以下の記事をご参照ください。

yasuo-ssi.hatenablog.com

■ 既知の問題

 RGB 合成プレビューを表示している状態で、シグモイド適用した適用元チャンネルの表示を、合成プレビューを消して、シグモイド適用イメージの表示に切り替わるのですが、その際に以下のようなエラーメッセージが表示されます。

エラーメッセージ

 現在のところなぜこのエラーメッセージが出るのか原因が突き止められていません。しかし正常に動作しているようですので、エラーメッセージが出てもとりあえず無視してください。

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

[本プラグインを用いた補正事例の紹介]

yasuo-ssi.hatenablog.com