PythonでCCV(Color Coherence Vector)を計算
PythonでCCV(Color Coherence Vector)を計算するプログラムを作成しました。
画像比較でよく使われる色ヒストグラムでは、色分布のみ焦点を当てていました。ここで実装したCCVは色分布以外に色の空間分布を取り入れる工夫がされています。元の論文はこちら(http://vis.uky.edu/~cheung/courses/ee639_fall04/readings/ccv.pdf)。
簡単な解説
簡単なアルゴリズム紹介です。
- ぼかす
- 色量子化/減色(今回は4色)
- 二値化
- 領域のピクセル数をカウント
- ピクセル数がよりも小さければ, 大きければのビンへピクセル数を加算
リポジトリ
こちらのリポジトリで公開しています。
CCVを計算する
この画像のCCVを計算します。
計算した結果がこちら。図中下部の棒グラフがCCVです。小さい領域を示すalpha, 大きい領域を示すbetaが横軸です。alphaとbetaはそれぞれビンを4つ持っています。ビンの数は色を減色する程度で決まります。
CCVの関係を見える化
184枚の画像に対して、CCVを計算し、関係をプロットしてみました。 多次元(今回は8次元)のデータを2次元平面上にプロットする方法は以前紹介しました。
サンプルが偏ってしまったせいなのか、プロットが偏ってしまっています。要検証ですね。