matlab 图像直方图处理,Matlab数字图像处理-直方图变换

直方图均衡化

clear;

close all;

img = imread('E:\DIP\image_gray.jpg');

a = size(img);

%得到直方图

h = imhist(img);

%得到矩阵最大值

L =length(h);

figure(1);

subplot(321);

imshow(img);

title('原图');

subplot(322);

bar(h);

title('原直方图');

%得到直方图分布函数

fenbu = h/sum(h);

leiji = [];

for i = 1:1:L

if(i==1)

leiji(i) = fenbu(i);

else

leiji(i) = leiji(i-1) + fenbu(i);

end

end

%映射

huidu = round(leiji.*(L-1));

junheng = zeros(a(1),a(2));

h2 = [];

for i = 1:1:a(1)*a(2)

junheng(i) = huidu(img(i)+1)/L;

h2(i) = junheng(i);

end

subplot(323);

imshow(junheng);

title('均衡化');

%得到直方图

h2 = hist(h2,L);

subplot(324);

bar(h2);

title('均衡化直方图');

效果图:

8f22cd58fdf575a12cc22130e62c2567.png

直方图规定化:(这个不对)

clear;

close all;

img = imread('E:\DIP\image_gray.jpg');

a = size(img);

%得到直方图

h = imhist(img);

%得到矩阵最大值

L =length(h);

figure(1);

subplot(221);

imshow(img);

title('原图');

subplot(222);

bar(h);

title('原直方图');

[f T] = histeq(img,256);

subplot(223);

imshow(f);

title('规定化后图像');

x = linspace(0,1,256);

subplot(224);

plot(x,T)

axis([0 1 0 1])

title('规定化函数');

效果图:

fc60ebc3edf2f8461aee158e8e9b5be1.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值