数字图像处理——直方图均衡(MATLAB)

数字图像处理中图片的直方图均衡,原理不再介绍。实现如下,有问题请留言。

function zy=Histogram(I)
[R, C] = size(I);

count_pixel= zeros(1, 256);
%计算每个灰度级的像素个数
for i = 1 : R
    for j = 1 : C
        count_pixel(1, I(i, j) + 1) = count_pixel(1, I(i, j) + 1) + 1;
    end
end

Pixel_probability = zeros(1, 256);
Pixel_probability = double(Pixel_probability); count_pixel = double(count_pixel);

% 统计每个灰度级概率
for i = 1 : 256
    Pixel_probability(1, i) = count_pixel(1, i) / (R * C);
end

% 求灰度级的累计概率
for i = 2 : 256
    Pixel_probability(1, i) = Pixel_probability(1, i - 1) + Pixel_probability(1, i);
end

subplot(2,3,3);plot(Pixel_probability);
title('结果概率累加')
% 用Pixel_probability数组实现灰度级[0, 255]的映射。
%将灰度级取最接近的整数和取浮点数时候的不同情况
for i = 1 : 256
    %取最接近的整数的灰度级
   Pixel_probability(1, i) = round(Pixel_probability(1, i) * 255);
   %直接使用浮点数
    %Pixel_probability(1, i) = Pixel_probability(1, i) * 255;
end

%display(Pixel_probability);
% 将映射好的灰度级赋给原图
I = double(I);
for i = 1 : R
    for j = 1 : C
        I(i, j) = Pixel_probability(1, I(i, j) + 1);
    end
end
zy = uint8(I);
end

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值