您的位置:首页 > 编程语言 > MATLAB

matlab实现将彩色图像(R,G,B)色分量的直方图匹配,并计算其相关性

2016-10-04 16:43 1506 查看
转自http://blog.csdn.net/Eagleest/article/details/34849947

函数 实现将彩色图像转化为直方图分量向量

[html] view
plain copy

 





calcrgb2hist.m 文件  

[plain] view
plain copy

 





function hist  = calcrgb2hist(picname)  

pic1 = imread(picname);  

pic1R = pic1(:,:,1);  

pic1G = pic1(:,:,2);  

pic1B = pic1(:,:,3);  

  

  

figure,imshow(pic1R)                   

title('R分量的图像')  

  

  

% 二,绘制直方图  

[m,n]=size(pic1R);                            %测量图像尺寸参数  

rhist=zeros(1,256);                           %预创建存放灰度出现概率的向量  

for k=0:255      

    rhist(k+1)=length(find(pic1R==k))/(m*n);     %计算每级灰度出现的概率,将其存入rhist中相应位置  

end  

figure,bar(0:255,rhist,'r')                   %绘制直方图   

title('R像直方图')  

xlabel('灰度值')  

ylabel('出现概率')  

%%  

ghist=zeros(1,256);   

for k=0:255      

    ghist(k+1)=length(find(pic1G==k))/(m*n);       

end  

figure,bar(0:255,ghist,'g')                  

title('G像直方图')  

xlabel('灰度值')  

ylabel('出现概率')  

  

  

%%  

bhist=zeros(1,256);   

for k=0:255      

    bhist(k+1)=length(find(pic1B==k))/(m*n);      

end  

figure,bar(0:255,bhist,'b')                   

title('B像直方图')  

xlabel('灰度值')  

ylabel('出现概率')  

hist = [reshape(rhist',1,256),reshape(ghist',1,256),reshape(bhist',1,256)]; %将直方图拼接成 256*3 的向量。  

end  

下面是执行的主函数

[plain] view
plain copy

 





p1= calcrgb2hist('frame22.bmp');  

p2= calcrgb2hist('frame22.bmp');  

g = corrcoef(p1 ,p2);  

fprintf('相关系数为 = %d\n',g(1,2));  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  直方图 matlab 相关性