matlab直方图均衡化

H=imread('C:\Users\Ibe\Desktop\a1.jpg');
if length(size(H))>2 %判断是否为三通道彩色图片,若是则将其灰度化
       H=rgb2gray(H);
end
[m,n]=size(H);%获取图片的尺寸,便于计算总像素数,即m*n
p=zeros(1,256);%生成一个一行256列的矩阵
for i=0:255
       p(i+1)=length(find(H==i))/(m*n);%统计各灰度像素个数,find(H==i)是在矩阵里面寻找灰度为i的点坐标,因为矩阵是从1开始的,所以为p(i+1)。其中length(find(H==i))表示统计H里面有多少个灰度值为i的点。
end
subplot(2,2,1);
imshow(H);
title('原图');
subplot(2,2,2);
bar(0:255,p,'b');%显示原图的直方图
title('原图直方图');
s=zeros(1,256);
for i=1:256%利用循环累加概率值
       for j=1:i
           s(i)=p(j)+s(i);
       end
end
a=round(s*255);%对s中的数先乘255再取整
b=H;%更新原图像的灰度
for i=0:255
       b(find(H==i))=a(i+1);%把a(i)的值赋给b(i)
end
 title('原图直

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值