先日、Bレベルが低下して黄色くなったネガフィルムスキャン画像の補正をめぐって、追加検証の記事を書きました。そこで、非リニアな曲線を使って B レベルの上昇を図ってみましたが、そこでふと気付いたことがあります。
ひょっとしてこれは、画像から知覚的な TRC をデコードしてガンマ = 1.0 のリニアな画像に戻してから、B チャンネルのレベルを調整し、それから再度知覚的な TRC をエンコードするとうまくいくのではないだろうか。
つまりリニアなTRCの画像上でリニアにレベル調整を図ると、非リニアなTRC画像上での、非リニアなレベル調整として映るということになるのではないか、ということです。
褪色に伴う B チャンネルのレベル低下は物理的な (リニアな) 過程だと考えると、リニア TRC 画像上ではリニアにレベル低下しているのに、非リニアTRC画像上では (つまり知覚的には) 非リニアなレベル低下として見える、ということは大いにあり得ることです。
そこで以上の仮説に基づいて、Bレベルが低下して黄色くなったネガフィルムスキャン画像のB チャンネルのレベル調整を、一旦画像の知覚的 TRC を解除してから、レベル調整し、その後再び知覚的 TRC を掛けるという方法で自動 B チャンネルレベル調整を図る、ImageJ 上で動くツールを作ってみました。
手持ちの数少ない、B チャンネルのレベルが低下して黄色っぽくなった画像にこれを適用してみたところ、それっぽい結果が得られます。
まず1例目ですが...
オリジナルのブルーの平均値はグリーンの平均値の半分程度に低下しています。
とりあえずブルーの平均値はグリーン並みになりました。ハイライト部のピークはレッドのピークと重なるようになっています。なお、ヒストグラムを見ると、ハイライト部で鋭いピークがありますが、もともと高めだったピクセルの値を上げた結果データクリップした部分です。ガンマやTRC の調整を行うことで、クリップ部の値がちょっと限界値より下がっています。
ちなみに、トーンカーブで B のカーブをリニアに引き上げた場合は以下のようになります。
リニアに引き上げるより、本ツールを使って引き上げたほうがベターです。
元々スキャナの癖でマゼンタに寄る傾向にあるようなのと、どうやら不均等黄変も併発しているようですので、それを考慮すればまぁまぁな結果が得られているようです。
次に2例目です。
ブルーの平均値はやはりレッドやグリーンの半分近くになっています。ブルーのピークもレッドとグリーンと同様2つ山がありますが、その山が半分近くずれています。
調整後は、だいたいピークがレッドとグリーンに揃うようになりました。
上の画像のホワイトバランスをとると、不均等黄変はありますが、色がいきいきしてきて結構いい感じになりました。
パラメータは経験的に決めているので本当にこれで良いのかよくわかりませんが、とりあえず手持ちの全体的に黄色っぽくなった画像ではまずまずの結果が得られます。
ブルーのレベルが、レッド、グリーンと大幅にずれていても、ヒストグラムのピークのパターンが似ているとまずまずうまくいくようです。ただ、ピークのパターンが大きく異なるとうまくいかないケースが出てくる場合があります。
例えば下記のようなケースですが...
左側のヒストグラムがオリジナルだとします。Bチャンネルにおいてシャドウからミッドはデータが残っていますが、ミッド以上で褪色のためデータが消えているケースです。実際に海外の方が褪色フィルム画像例としてアップしている画像にこのようなパターンがいくつか見つかりました。
このようなケースの場合、このツールを使うと右のようなヒストグラムになります。オリジナルはミッドトーンからハイライトに掛けてデータが失われて、黄色くなっているケースですが、この場合ミッド以下のカーブがデータ伸張されて右のようなパターンになります。しかし元々揃っていたシャドウ部のピークがずれてしまうことで却っておかしくなってしまいます。
このようなケースは、B のレベルを引き上げるよりも、ミッド~ハイライトのデータを、例えば他チャンネルデータを流用するなどして、メーキング (再創造) したほうが良好な結果が得られます。
というわけで万能というわけにはいきませんが、そこそこ使えるような感じです。とくに B チャンネルのレベル低下と不均等黄変が併発している場合、B チャンネル再建法を掛ける前処理としては十分使えるのではないかと思います。
なお、8bit 画像をこのツールを掛けると、ビット深度が足りないため良好な結果が得られませんでした。従って入力画像が 8bit の場合は非対応とし、入力した場合は処理を行わずに終了するようにしました。8bit 画像は予め 16bit 画像に変換してから掛けて下さい。
本ツールのダウンロードはこちらからお願いします。
また、本ツールで処理した結果を GIMP に読み込むためには、以下のプラグインが必須ですので、導入しておいてください。また、それ以外の画像処理ソフトに読み込みたい場合も、GIMP上で当プラグインを使って TIFF ファイルを合成してから、他ソフトに読ませてください。
-----------------
[関連記事]
8bit データを 16bit に変換する方法です。