2017-10-23 5 views
0

画像のRGB値をヒストグラムに入れて、そのヒストグラムを他の画像のヒストグラムと比較します。 現在、これはコードである:Matlabの画像からのRGB値のヒストグラムを比較する

if (size(cimg, 3) ~= 3) 
error('rgbhist:numberOfSamples', 'Input image must be RGB.') 
end 
nBins = 256; 
rHist = imhist(cimg(:,:,1), nBins); 
gHist = imhist(cimg(:,:,2), nBins); 
bHist = imhist(cimg(:,:,3), nBins); 
hFig = figure; 
%figure 

subplot(1,2,1);imshow(cimg) 
subplot(1,2,2); 
hold on 
h(1) = stem(1:256, rHist); %hold on 
h(2) = stem(1:256 + 1/3, gHist, 'g'); 
h(3) = stem(1:256 + 2/3, bHist, 'b'); 
hold off 
set(h, 'marker', 'none') 
set(h(1), 'color', [1 0 0]) 
set(h(2), 'color', [0 1 0]) 
set(h(3), 'color', [0 0 1]) 
axis square 

コードは、私は潜在的にほぼ有するように画像を分類することができるように、私は他のヒストグラムと比較するために、そのヒストグラムを使用する方法、そのRGBヒストグラム値とともに画像を出力します別のイメージと同じ色ですか?

答えて

1

Kullback Leibler Divergenceを使用すると、2つのヒストグラムの間の距離を計算できます。
ヒストグラムを分布として扱うことができるので、これは簡単です。

KLダイバージェンスは対称ではないので、2回(つまり[X、Y]と[Y、X])を計算して平均をとることができます。

関連する問題