TAMALOG

プログラミングがあれば遠いところへ行けます。プログラムと人の共生を記録します。

PythonでCCV(Color Coherence Vector)を計算

PythonでCCV(Color Coherence Vector)を計算するプログラムを作成しました。

画像比較でよく使われる色ヒストグラムでは、色分布のみ焦点を当てていました。ここで実装したCCVは色分布以外に色の空間分布を取り入れる工夫がされています。元の論文はこちら(http://vis.uky.edu/~cheung/courses/ee639_fall04/readings/ccv.pdf)。

簡単な解説

簡単なアルゴリズム紹介です。

  • ぼかす
  • 量子化/減色(今回は4色)
  • 二値化
  • 領域のピクセル数をカウント
    • ピクセル数が \tauよりも小さければ \alpha, 大きければ \betaのビンへピクセル数を加算

リポジトリ

こちらのリポジトリで公開しています。

github.com

CCVを計算する

この画像のCCVを計算します。

f:id:tamanobi:20150720033922p:plain

計算した結果がこちら。図中下部の棒グラフがCCVです。小さい領域を示すalpha, 大きい領域を示すbetaが横軸です。alphaとbetaはそれぞれビンを4つ持っています。ビンの数は色を減色する程度で決まります。

f:id:tamanobi:20150720041013p:plain

CCVの関係を見える化

184枚の画像に対して、CCVを計算し、関係をプロットしてみました。 多次元(今回は8次元)のデータを2次元平面上にプロットする方法は以前紹介しました。

tamanobi.hatenablog.com

f:id:tamanobi:20150720033631p:plain

サンプルが偏ってしまったせいなのか、プロットが偏ってしまっています。要検証ですね。