直方图均衡化_matlab实现

直方图均衡化_基于matlab


话不多说,直接上代码

%直方图均衡化
 clc,clear
%%
path = 'C:\Users\';%图像路径
name = 'duibi.jpg';%图像名称
I = imread([path,name]);%读取图像
I = rgb2gray(I);
N = 256;
figure,imshow(I),title('原图');%显示原图

%%
%第一步:计算直方图
figure;
Hist_1=histogram(I,0:N);
title("原图像直方图"); %显示原图像直方图

%%
%第二步:计算累计直方图(累计分布函数)
Hist_image_cumulation=cumsum(Hist_1.Values/sum(Hist_1.Values)); %累计直方图

%%
%第三步:利用累计直方图作变换函数进行灰度变换
S2 = Hist_image_cumulation.*(N-1);%变换后的灰度等级

%%
%第四步:将求出来的新灰度等级代替原来的灰度等级
P = double(I);
for i=0:N-1
    P(I==i)= S2(i+1);
end

%显示均衡化直方图
P = uint8(P);
figure,histogram(P,0:N),title("均衡化直方图");
figure,imshow(P),title("转化后的图像");%显示均衡化的图像

运行效果图
运行效果图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值