今回、フィルム画像のダメージ度合いを診断するための、画像統計計算ツールを作成しましたので公開します。先日、ImageJの getStatistics APIを使った簡単な画像統計表示ツールを公開しました。このプログラム、単に、ImageJのgetStatistics メソッドを使って、獲得した統計値を表示するという非常に単純なものですが、意外に記事に対するアクセスがありました。
ただそれだと、画像ダメージの指標となる画像チャンネル(R, G, B)間の相関係数が計算できません。そこで、今回チャンネル間の相関係数や平均値、標準偏差等を出力するImageJに対応した統計計算ツールを開発してみました。
今回のツールの非常にユニークな特徴として、
1. チャンネル間の相関係数が計算できる
は、もちろんですが、その他に
2. 任意に指定した、画像の部分的な矩形範囲の統計が計算できる
3. 任意に指定した、輝度範囲を限った統計が計算できる
という他に類を見ない特徴を備えています。
また、Bチャンネル再建法補正ツールに対応した
4. マニュアルで補正値を調整する場合の目安値の計算機能
も付けました。
まず、1. のチャンネル間の相関係数の計算ですが、先日お示ししたように、ダメージが大きいほどチャンネル間の相関係数 (特にBチャンネルとGチャンネルの相関)が低くなる傾向にあり、拙作のBチャンネル再建法フィルム画像黄変補正ツールに内在されている、拡張擬似フラットフィールド補正アルゴリズムだけでは黄変の補正が不十分になる傾向が見られます。
一般的な風景画像ですと、正常な画像の場合、G-R間の相関係数が最も高く、G-B間、R-B間の順に相関係数が下がる傾向にあります。そして通常、G-R間の相関係数は0.95以上 (0.97〜0.98ぐらいが多い)、G-B間は0.95前後程度、そして相関が低めのR-B間でも 0.8代後半から0.9前後を大きく下回ることはあまりありません。大体0.90代前半あたりの数値になることが多いです。
人間の感覚だと、G-B間より、G-R間の相関が高いのは意外ですが (主観的には、青と緑のほうが近いように感じるので) 、実は植物の緑は結構、GとRの値が高く、B が低いというパターンなので (特に新緑は G-R と Bの落差が大きい) 植物の緑が多く写っている景色ほど、G-R間の相関が高く、G-B間の相関は低くなります。一方、植物がほとんど写っていない都市の風景などは、人間の直感通り、G-R間より、G-B間のほうが相関係数が高くなることが多いです。
例えば以下の写真の場合...
R-G間の相関係数は、0.98、一方、G-B間の相関係数は、0.96です。
一方、以下の写真では...
R-G間の相関係数は、0.93、一方、G-B間の相関係数は、0.95です。こちらはG-B間が上になっていますが、植物がほとんど写っていない影響です。またR-G間が低めなのは照明の影響等もあると思います。
続きを読む