comparison of two histograms using pdist2

65 次查看(过去 30 天)
hi, I am having two Images I wanted compare these two Images by histograms I have read about pdist that provides 'chisq' but i think the way i am doing is not correct, and what to do to show the result afterwards because this is giving a black image.
i1=imread('blue_4.gif');i1=i1(:,:,1);
[c1,n]=imhist(i1);
c1=c1/size(i1,1)/size(i1,2);
i2=imread('blue_5.jpeg');i2=i2(:,:,1);
[c2,n2]=imhist(i2);
c2=c2/size(i2,1)/size(i2,2);
d=pdist2(c1,c2,'chisq');
please give me a working example thanks

采纳的回答

Anand
Anand 2013-8-23
You almost got it right. Just transpose the histograms. So you're last command should be
d = pdist2(c1',c2');
  8 个评论
Sashank
Sashank 2017-11-19
I am beginner. Please guide me about How can I know how much similar two images are ?

请先登录,再进行评论。

更多回答(1 个)

Raghunandan
Raghunandan 2014-10-31
编辑:Raghunandan 2014-10-31
Just wanted to let you know that pdist2 in MATLAB uses 'Euclidean' distance by default. If you are looking to get 'ChiSquare' distance, please use the code found here.
  1 个评论
ndoum ekanga  steve willy
编辑:ndoum ekanga steve willy 2015-11-27
But this doesnt give me any output, i cant even see the similarity.
% read two images Im1 = imread('ckt_1.tif'); Im2 = imread('ckt_3.tif');
% convert images to type double (range from from 0 to 1 instead of from 0 to 255) Im1 = im2double(Im1); Im2 = im2double(Im2);
% Calculate the Normalized Histogram of Image 1 and Image 2 hn1 = imhist(Im1)./numel(Im1); hn2 = imhist(Im2)./numel(Im2);
% Calculate the histogram error
f = sum((hn1 - hn2).^2); f; %display the result to console

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Histograms 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by