Matlab-空域增强实验-彩色图像的直方图均衡化
代码链接:https://download.csdn.net/download/qq_43571150/12033257
以左图为输入,实现直方图均衡化的算法,获得类似右图的效果。实验用图像自行选择。
问题1:
提取RGB三个通道图像,计算其平均直方图结果,然后再进行均衡化;
%主函数
function coloraverage()
I=imread('01.jpg');
imshow(I);
I1=I(:,:,1);%提取红色分量
I2=I(:,:,2);%提取绿色分量
I3=I(:,:,3);%提取蓝色分量
I1=histogram(I1); %构造的函数
I2=histogram(I2);
I3=histogram(I3);
c=cat(3,I1,I2,I3); %cat用于构造多维数组
subplot(2,2,1);imshow(I);title('输入图像');
subplot(2,2,2);imhist(I);title('输入图像的直方图'); %显示图片灰度值的统计结果直方图
subplot(2,2,3);imshow(c);title('处理后图像');
subplot(2,2,4);imhist(c);title('处理后图像的直方图'); %显示图片灰度值的统计结果直方图
imwrite(c,'01Save.jpg');
%调用的(直方图均衡化)构造函数
function d=histogram(I)%构造histogram函数
J=I;
[m,n]=size(I); %确定矩阵大小
area=m*n;
a=zeros(1,256); %产生1*256的零矩阵a,用来存放原始图像各个灰度值的个数
b=zeros(1,256);
for i=