数字图像处理(朱虹)直方图均衡化matlab实现

课本3.3直方图均衡化中例子的实现,课本25页。

课本内容:

matlab代码:

close all;clear;clc 
f=[110,0,120,120,130;110,140,130,110,130;120,140,120,120,170;130,120,0,120,170];
imwrite(uint8(f),'D:\Download\teach1.bmp');
I1=imread('D:\Download\teach1.bmp');
[M,N]=size(I1);
subplot(2,2,1);
imshow(I1);         %显示原图
title('original image');
subplot(2,2,2);
h1=imhist(I1);         
bar(h1);            %显示原图的灰度直方图
axis([0 256,-inf,inf]);%可有可无,对直方图的坐标进行限制

%求变换函数
s=[];%建立空列表,方便往里写数据
s(1)=255*h1(1)/M/N;
for k=2:255
    s(k)=s(k-1)+255*h1(k)/M/N;%课本25页3-3,经过处理后的样子(课本中的L为256)
end

%%绘制变换后的图像
I2=[];

    for m=1:M
        for n=1:N
            for k=1:255
            if I1(m,n)==k %遍历I1中的所有像素点
                I2(m,n)=round(s(k));%取整
            end
            end
        end
    end
I2=uint8(I2);  %由于运算后函数为double型,因此需用此句转换为uint8型以显示
subplot(2,2,3);
imshow(I2);      
subplot(2,2,4);
h2=imhist(I2);         
bar(h2);

 运行结果:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值