数字图像处理之彩色图像的直方图均衡化

来源:互联网 发布:单片机无线通信 编辑:程序博客网 时间:2024/04/24 10:24

关于灰度图像的直方图均衡化,我已经写过,不知道的童鞋可以点连接http://blog.csdn.net/qq_34119437/article/details/53086799

那么如何进行彩色图像的直方图均衡化。

我们知道jpg图像是由RGB三色通道,那么我们可以对一幅图像三个通道进行提取,然后分别进行直方图均衡化。最后合并即可。话不多说上代码

function coloraverage()
I=imread('lena2.jpg');
imshow(I);
I1=I(:,:,1);%提取R通道
I2=I(:,:,2);%提取G通道
I3=I(:,:,3);%提取B通道
I1=test(I1);%直方图均衡化
I2=test(I2);%直方图均衡化
I3=test(I3);%直方图均衡化
c=cat(3,I1,I2,I3); %合并
subplot(121);imshow(I);
subplot(122);imshow(c);
function m=test(I)
J=I;
[w,l]=size(I);%确定矩阵大小
area=w*l;
a=zeros(1,256);
b=zeros(1,256);
for i=1:w           %记录每个灰度的个数
    for j=1:l
        m=I(i,j)+1;
        a(1,m)=a(1,m)+1;
    end
end
for i=1:256            %均衡化
    sum=0;
    for j=1:i
        sum=sum+a(1,j);
    end
    b(1,i)=sum*255/area;
end
for i=1:w           %用均衡化后的数据代替原位置的数据
    for j=1:l
        m=J(i,j)+1;
        J(i,j)=b(1,m);
    end
end
m=J;

如图 图像的对比度有所上升。

0 0
原创粉丝点击