[matlab]直方图均衡化

本文用来描述matlab版和自己写的区别,其中自己写的是按照 数字图像处理 冈萨雷斯 书中提到的公式。


MATLAB自带有直方图均衡化的函数:histeq

用法为:略


代码如下:

% 用来直方图均衡化【自己写】
clc;clear all;close all
I = imread('汤唯1.jpg');
I1 = rgb2gray(I);
[height,width] = size(I1);
[vPer ~] = imhist(I1);
vPerCum = cumsum(vPer);
vNew = (vPerCum/(height*width));
I2 = zeros(height,width);
for i = 0:255
	I2(I1==i) = vNew(i+1);
end
figure;
subplot(2,3,1),imshow(I1);title('原图')
subplot(2,3,4),bar(vPer);title('原图  直方图');xlim([0 255])
subplot(2,3,2),imshow(I2);title('原图  均衡化')
subplot(2,3,5),bar(vPer2);title('均衡化  直方图');xlim([0 255])
%% MATLAB自带的直方图均衡化函数histeq
I4 = histeq(I1);
[vPer4 ~] = imhist(I4);
subplot(2,3,3),imshow(I4);title('原图  自带函数')
subplot(2,3,6),bar(vPer4);title('自带函数  直方图');xlim([0 255])
%% 结论:
% 经过对比发现,MATLAB自带的直方图均衡化函数,默认为每4个灰度级取一个点,所以对于256的图像,为64个点;
% 如果修改为 I4 = histeq(I1,256),则与自己所写完全相同


运行结果如下:


以上仅供各位学习,有问题,欢迎讨论,有建议,欢迎指导。hmmwjs@163.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值