Retinex/jp
ここの解説は一部がまだ不完全です。
概要
薄暗い、鮮やかな色に囲まれている、霞みがかかっている、など周辺の環境が違っても、人間の目は、物の色を正しく捉えて見ることが出来ますが、カメラはそれが苦手です。そこで、環境変化に対する人間の視覚のメカニズムを真似たMSR(MultiScale Retinex)というアルゴリズムが生まれました。デジタル写真撮影の中で、このレティネックス(Retinex:網膜-retinaと皮質-cortexの合成語)というアルゴリズムは、天体写真やX線撮影、CTスキャンで、画像の中の曖昧な箇所をはっきりさせるために使われています。この20年で、様々な理論やアルゴリズムが開発されました。初めの試みは、人間の目の知覚とEdwin Landが提案した網膜の役割を基に、Rahmanが1996年に行った実験です。アプローチ自体はCIECAMと似ていますが、機能的にはDoG(Difference of Gaussian ガウス差分)による画像の生成に似ています。考え方としては、画像の注目画素とその周辺画素の輝度の強弱の特徴を解析するのですが、科学的根拠に基づいている訳ではなく、実験や経験に基づいて、長い間改良が重ねられたものです。これら研究成果は、まだ満足のいくものではありませんが、プログラムに組み込む上で、次の2つの研究成果を参考にしました:
- "Automatic Image Haze Removal Based on Luminance Component" (Fan Guo, Zixing Cai, Bin Xie, Jin Tang)"[1](英語)
- "Retinex Algorithm on Changing Scales for Haze Removal with Depth Map" (Weixing Wang, Lian Xu)"[2](英語)
- 上記2つの研究に加えて、Fabien Pelissonによる“プログラムの工夫2003”を参考にしています。
レティネックスは次の様な画像の補正に有効でしょう:
- 霧などで霞んだ画像
- 輝度の差が著しく少ない画像
- 画像に特殊な効果を付けたい(例 トーンマッピング)
レティネックス 新しい調整機能
以下、このアルゴリズムの限界、長所・短所を説明します。
“ウェーブレット”をレティネックスで使う
ウェーブレットをレティネックスで使うオプションを2つ用意しましたが、説明はウェーブレットの項に移動しました。
RawTherapeeでの応用限度
このアルゴリズムは画像全体を考慮する必要があるため、切り抜いた画像やリサイズした画像には使えません。この制約ため、プログラムへの応用に関しても幾つか制限があります:
- 処理モジュールは“Lab調整”の近くに置くことにしました。Lab調整はraw画像を処理するためRawTherapeeの処理工程の最初の方にあります。従ってレティネックスのモジュールも処理工程の最初の方に置く必要があるため、扱える対象はrawファイルだけになります(TIFFやJPEG画像は扱えません)。
- 処理モジュールをデモザイク処理の直ぐ後に置いたので、処理するrawデータは、ダウンストリームのrawデータとは性質が異なります。ガンマがなく、色域の制限もありません。ホワイトバランスもRGB変換もないので、アーティファクトの発生や、輝度や色度の記録精度が落ちます。
- 処理モジュールが最初の方に置いてあるため、設定を変える度に、他を含む処理プロセス全体の演算が繰り返され、システムに負荷がかかります。
- 色被り(空の色にマゼンタが被る)が発生することがあるので、その場合は、ホワイトポイントの補正が必要となります。
- 但し、このモジュールは“ノイズ低減”の前にあるので、この色被りをノイズ低減機能で補正することが出来ます。
以上の様な制限はありますが、ウェーブレット機能と併用することで、このレティネックスは霞がかかったような画像のコントラストや色のレンダリング補正で十分満足のいく効果が得られると思います。