%绘制lena RGB色彩模式下的直方图和累计直方图
I=imread('lena_color.jpg');
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
%%绘制R直方图和累计直方图
jh1=imhist(R);
jhc1=cuhist(R);
subplot(3,2,1),stem(0:255,jh1,'r')
title('R Histogram')
subplot(3,2,2),stem(0:255,jhc1,'r')
title('R Cumulative Histogram ');
%%绘制G直方图和累计直方图
jh2=imhist(G);
jhc2=cuhist(G);
subplot(3,2,3),stem(0:255,jh2,'g')
title('G Histogram')
subplot(3,2,4),stem(0:255,jhc2,'g')
title('G Cumulative Histogram ');
%%绘制B直方图和累计直方图
jh3=imhist(B);
jhc3=cuhist(B);
subplot(3,2,5),stem(0:255,jh3,'b')
title('B Histogram')
subplot(3,2,6),stem(0:255,jhc3,'b')
title('B Cumulative Histogram ');
%%lena图片直方图均衡化
%将R,G,B三个矩阵分别均衡化
R1=ihisteq(R);
G1=ihisteq(G);
B1=ihisteq(B);
[r,c]=size(R1);
%合成均衡化后的图片
I1(:,:,1)=R1;
I1(:,:,2)=G1;
I1(:,:,3)=B1;
%绘制均衡化后的R,G,B三个通道的直方图和累计直方图
%R通道
je1=imhist(R1);
jec1=cuhist(R1);
figure;
subplot(3,2,1),stem(0:255,je1,'r');
title('R Histogram After Equalizaion') ;
subplot(3,2,2),stem(0:255,jec1,'r');
title('R Cumulative Histogram After Equalizaion') ;
%G通道
je2=imhist(G1);
jec2=cuhist(G1);
subplot(3,2,3),stem(0:255,je2,'g');
title('G Histogram After Equalizaion') ;
subplot(3,2,4),stem(0:255,jec2,'g');
title('G Cumulative Histogram After Equalizaion') ;
%B通道
je3=imhist(B1);
jec3=cuhist(B1);
subplot(3,2,5),stem(0:255,je3,'b');
title('B Histogram After Equalizaion') ;
subplot(3,2,6),stem(0:255,jec3,'b');
title('B Cumulative Histogram After Equalizaion') ;
%将RGB色彩模式转化为HSV色彩模式的图片
[H,S,V]=rgb2hsv(R,G,B);
Hi=cat(3,H,S,V);
[m,n]=size(V);
for i=1:m
for j=1:n
V(i,j)=floor((V(i,j)*255));
end
end
%绘制V通道均衡化前后的直方图和累计直方图
figure;
vj1=imhist(V);
subplot(2,2,1),stem((0:255)/255,vj1,'r');
title('V Histogram');
vj2=cuhist(V);
subplot(2,2,2),stem((0:255)/255,vj2,'g');
title('V Cumulative Histogram ');
V1=ihisteq(V);
vje1=imhist(V1);
subplot(2,2,3),stem((0:255)/255,vje1,'r');
title('V Histogram After Equalization');
vje2=cuhist(V1);
subplot(2,2,4),stem((0:255)/255,vje2,'g');
title('V Cumulative Histogram After Equalization');
%绘制两种不同色彩模式均化前后的图片
figure;
subplot(2,2,1),imshow(I),
title('Lena-rgb before Histogram Equalization');
subplot(2,2,2),imshow(I1),
title('Lena-rgb after Histogram Equalization');
%将RGB图像转化为HSV图像
subplot(2,2,3),imshow(Hi),
title('Lena-hsi before Histogram Equalization');
%将V通道均衡化后HSV图像
for i=1:m
for j=1:n
V1(i,j)=floor((V1(i,j)/255));
end
end
Hi1=cat(3,H,S,V1);
subplot(2,2,4),imshow(Hi1);
title('Lena-hsi after Histogram Equalization');