3.カラー画像のヒストグラム

フルカラー画像を64色に減色した画像のヒストグラム(すなわち64色の各色のピクセルが画像中に何個あるか)を棒グラフで表示せよ(棒グラフにすること自体は検索とは無関係なので,棒グラフ表示が難しければ必ずしも棒グラフを表示しなくても良い.数値出力だけでも可).


この演習で求めるヒストグラムの一例を図に示す.横軸が色の番号であり,縦軸が各色の画像中での出現頻度である.

このカラーヒストグラムは画像の色の特徴を表している.色の類似した画像はこのヒストグラムが似ているはずである.画像の類似検索ではこのヒストグラムを利用する.

ヒストグラムの求め方

まず,ヒストグラムを格納するための1次元配列を準備する.

int hist[64];

次に画像中の画素の色を一つ一つ調べていく.例えばある画素のカラー値が第11番目の色ならば

hist[11]=hist[11]+1;

とする.これを全ての画素について調べればヒストグラムを求めることができる.プログラムはこれまで作成したプログラムを利用して作成せよ(すなわちこの課題に対するサンプルプログラムはない).
ヒストグラムを求めるときに注意すべき点は,ヒストグラムを格納する配列の初期化を忘れないことである.そうしないとヒストグラムを正確に求めることができない.正確に求まっているのかを確かめる一つの方法は,ヒストグラムの総和を求めてみて,この値が画像の総画素数128×128と同じになっているかどうか確かめてみることである.数が一致していない場合,変数の初期化を忘れている場合が多い.

棒グラフの作り方(Excelでの作成の仕方)

OSがLinux系ではじめからgnuplotが使える人はgnuplotで棒グラフを作成せよ.一方,OSがWindowsの人はExcelで棒グラフを作成するのが簡単.はじめに,プログラムでヒストグラムの値をファイルに書き出す.次にExcelを起動してファイルメニューから「ファイルを開く」を選び,書き出したヒストグラムのファイルを選ぶ.このときファイルが一覧に無い場合は,「ファイルを開く」のボックスの「ファイルの種類」の部分を,「すべてのファイル(*,*)」にすればよい.ファイルを選ぶと,テキストファイルウィザードが出てくるので「完了」をクリック.次に「挿入」メニューで「グラフ」を選びグラフの種類で縦棒を選んで完了を押せば出来上がり.

[戻る]