直方图均衡化

数字图像处理实验二——实现图片均衡化

%导入并显示图像
I = imread('Fig5.jpg');
figure;
imshow(I);
[m,n]=size(I);
x = [1 : 256];
histogram = zeros(1,256);%初始化统计直方图矩阵
histogram1 = zeros(1,256);%初始化概率直方图矩阵
s = zeros(1,256);%初始化累计直方图矩阵

%补充:统计直方图
%行的索引:i,[1 m]
%列的索引:j,[1 n]
s1 = zeros(1, 256)
for i = 1 : m
    for j = 1 : n
        s1(uint8(I(i, j)) + 1) = s1(uint8(I(i, j)) + 1) + 1;
    end
end
s2 = zeros(1, 256);
for i = 1 : 256
    s2(i) = s1(i) / m / n;
end
%figure(1), plot(x, s1);


%补充归一化直方图:histogram1
%用点除./实现归一化
s2 = zeros(1, 256);
for i = 1 : 256
    s2(i) = s1(i) ./ (m * n);
end
%figure(2), plot(x, s2);

%补充:直方图均衡化
%补充计算累积直方图

s3 = zeros(1, 256);
s3(1) = s2(1)
for i = 2 : 256
    s3(i) = s3(i - 1) + s2(i);
end
%figure(3), plot(x, s3);


%补充:映射
s4 = zeros(1, 256)
for i = 1 : 256
    s4(i) = uint8(s3(i) * 255);
end

%补充:显示直方图均衡化处理的图像
I1 = I 
for i = 1 : 256
    for j = 1 : 256
        I1(i, j) = s4(uint8(I(i, j) + 1));
    end
end
figure;
Imshow(I1);
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值