拙作の黄変ネガフィルム Bチャンネル再建法補正ツールは、7月以前のアルゴリズムでは、基本的にはGチャンネル情報をBチャンネルにミックスすることで、黄変の改善とテクスチャの荒れの改善を行っていました。
7月末のアルゴリズムの改善で、黄変の削除は主として拡張疑似フラットフィールド補正アルゴリズムが担い、Gチャンネル情報のミキシングは、もちろん黄変の軽減効果はありますが、主として荒れたBチャンネルのテクスチャ改善機能を担わせるように、プログラムを改訂しました。
では、拡張疑似フラットフィールド補正アルゴリズムだけで、どの程度の黄変改善効果があるのでしょうか?通常のプログラムでは出力していませんが、今回特別に途中経過を出力させて、その効果をお見せします。
まずオリジナル画像です。先日の補正事例でお見せした写真です。
空を中心に黄変が見られます。このBチャンネルはどうなっているでしょうか?
黄変部分がうっすらと暗くなっているのが見て取れます。
次にGチャンネルを基準として推定したBチャンネルの黄変量です。この画像は、通常出力されない画像ですが、今回特別に出力しています。
白っぽくなっている部分が、推定された黄変部分です。しかし、あくまでもGチャンネルを基準に黄変を推定しているので、元々Gチャンネルの値がBよりもかなり高い部分 (要はより緑色が強い部分) も白っぽくなってしまいます。コンピュータには、もともと黄色味があったのか、後から化学的変性によって黄色くなったのか区別がつきませんので。例えばこの写真では、ヘッドマークの黄緑色のところが特に白くなっていますが、この部分は黄変によるものではありません。
で、黄変補正はどのように行っているかというと、上の黄変推定量分、Bチャンネルの値を直接引き上げます。その結果がこちらです。
黄変で黒々としていた空がだいぶ明るくなったのがお分かりになると思います。ただこれが直ちに修正されたBチャンネル画像になるのではなく、さらにGチャンネルのミキシングが入りますので、もっとスムーズな画像になるはずです。
その一方で、黄変ではないけれども、元々黄緑色だったところが、妙に明るくなってしまいました。同様なことは、新緑の緑などでも十分起こり得ます。そのため、Bチャンネル補正法ツールの現在のバージョンでは、[植物の緑保護]オプションをつけていますが、これはこのような部分にマスクを掛け、その部分だけ補正効果を弱める(黄色みを維持する)ことにより、なるべく、オリジナルの緑色が保たれるようにするためのオプションです。
なお、クリーム色の部分も一部黄変部分としてカウントされていましたが、そちらの方は量的にはわずかですので、値が変わったことが見た目で分かるほどではありません。
以下実際のBチャンネル再建法ツールを走らせて、編集の上合成した再建Bチャンネルです。
ご覧のように、素の拡張疑似フラットフィールド補正アルゴリズム適用結果に比べて、こちらの方は、Gチャンネルのミキシングや、[緑の保護] オプションをつけて走らせたおかげで、ヘッドマークが白っぽくなっていたのが改善しています。このほかレイヤー編集作業を通じて、Bチャンネルの周辺の褪色による情報抜けで白っぽくなっていたのも補正しています。とはいえ、拡張疑似フラットフィールド補正アルゴリズムによって、黄変量の70~80%程度は補正されている印象です。
上のBチャンネル画像を使ってRGB合成を行ったのが下記です。
これをさらに、GIMP上での追加補正を加え、さらにRaw現像ソフトを使ってトーンやホワイトバランスを調整して仕上げた最終結果がこちらです。
この、編集過程の詳細は以下のページをご覧ください・。
なお、すでに指摘していますが、拡張疑似フラットフィールド補正アルゴリズムはG画像を参照して黄変量を推定しているので、元々B の値が G より高い部分ではうまく黄変を削減できません。現在のアルゴリズムは、拡張疑似フラットフィールド補正アルゴリズムとGチャンネルミキシングアルゴリズムのハイブリッドになっていますので、拡張疑似フラットフィールドが不得意な部分は、Gチャンネルミキシングの補正能力に期待することになります。
しかし、現在、補正のメインレイヤーとなっている、近景補正レイヤーには、B値がG値を上回る部分の補正を弱めるマスクが掛かっていますので、これが、Gチャンネルミキシングアルゴリズムの効果をキャンセルする効果を持ってしまっています。現状では、もし青色の濃い部分に黄変が見られる場合は、近景補正レイヤーのマスクの青色の濃い部分をペイントツールを使って白塗りして、補正効果を戻す作業が必要です。
例えば下記の画像ですが...
オリジナルのBチャンネルは下記です。
ここから拡張疑似フラットフィールドアルゴリズムで、黄変量を推定すると...
ご覧のように、青い部分の黄変は全くカウントされていません。これから単純に推定黄変量を削減すると以下のような画像しか得られません。
駅ビルの壁面などが、オリジナルより明るくなっているので、一応ある程度黄変が削減されているのは確認できます。しかし青い塗装の部分で不均質感が残っており、これは黄変が全く削減されていないことを示しています。また、空やホームに関しても、明らかに黄変の補正は不十分です。こちらの方はB値が高いがゆえに黄変がカウントできないためではなく、テクスチャの荒れが原因と考えられます。というのは拡張疑似フラットフィールド補正アルゴリズムはテクスチャの粒子 (黄変の粒子) が大き目だと、十分な補正効果が発揮できないためです (→ その後いろいろ調査してみましたが、テクスチャ荒れが原因ではないようです。やはり画像によるとしか言えません)。そして実際、上の事例よりもこちらの事例のほうがBチャンネルの粒状の荒れが目立つことも確認できます。
しかし、実際に B チャンネル再建法ツールを走らせると以下のような補正画像が得られます。
拡張疑似フラットフィールド補正アルゴリズムで十分効果の得られなかった青い塗装部分や、ホーム等の不均質さが改善されていますが、これはGチャンネル画像ミキシングアルゴリズムが働いてくれているおかげです。つまりアルゴリズムのハイブリッド化の効果が出ているということです。もちろん、電車の窓周りのクリーム色の部分や駅ビルの壁面では、Gチャンネル画像ミキシングアルゴリズムを単独で使うより黄変の削減量は増えているはずです。とは言え、この画像に関しては、拡張疑似フラットフィールド補正アルゴリズムは黄変の削減に関して補助的な役割しか果たしていません。おそらく、この画像の場合、全体の黄変量のうち20~30%程度しか削減していない印象です。テクスチャの荒れも大幅に改善されていますが、これもミキシングアルゴリズムのおかげです。
その一方で、ミキシングアルゴリズムが主な役割を果たしているため、青い部分での明るさが本来よりやや暗くなるという副作用が出ています。このように、画像によって、どちらのアルゴリズムがどれほど働いてくれるかは大きく異なってきます。
一方で、現在のバージョンでは近景補正レイヤー用として下記のようなマスクがデフォルトとしてつけられます。これは、既述のように、B値がG値を上回る部分をマスクすることにより、その部分の補正効果を弱める働きをしています。これはなるべくBチャンネルとGチャンネル間の違いを維持するためにつけているマスクなのですが...
これをこのままかけると、このケースの場合は、せっかくGチャンネルのミキシングで補正された効果が再び不均質化する可能性があります。従って、マスクの元々青い部分全体を白塗りにして補正効果が残るような編集を行う必要があります。
ただ、それでもGチャンネルをミキシングしたことによるBチャンネルの明度低下という副作用があるので、このあたりどのようなオペレーションで考えていくべきか、悩んでいるところです。現在いろいろなアルゴリズムを考え付いては、実装してみて、思った効果が得られず却下という作業を繰り返しています。
おそらくまた近いうちにアルゴリズムの見直しを行うと思います。
---------------------
この記事には、以下の関連記事があります。