a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第1张图片

本文内容来自博客专栏《DIP数字图像处理》

1

前言

直方图均衡(Histogram equalization)是利用直方图分布,计算累加函数,按照累加函数做映射,能够提升图像对比度。
本文我会从每一个小的步骤编写,说明,并给出每一阶段的结果,让你完全搞懂其原理。
直方图均衡示例:

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第2张图片

2

代码

2.1 自己写一个

还是那句话, 【要想搞明白真正原理,尤其你是做图像算法的,还是得自己动手写】代码如下:

%直方图均衡Histogram equalization 源代码Iin = imread('tire.tif');[numRows,numCols]=size(Iin);numBins=2^8;%直方图统计,概率分布函数pdf(Probability distribution function)pdf=zeros(1,numBins);for ii=1:numRows for jj=1:numCols pdf(Iin(ii,jj)+1)=pdf(Iin(ii,jj)+1)+1; endendfigure()plot(pdf,'.-');grid on;title('直方图统计');%累加直方图得到,累加函数cdf(Cumulative distribution function)cdf=cumsum(pdf);cdf=cdf./cdf(end); %归一化处理figure()plot(cdf,'.-');grid on;title('直方图累加函数计算');% 根据累加函数映射Iout=zeros(numRows,numCols);for ii=1:numRows for jj=1:numCols Iout(ii,jj)=255*cdf(Iin(ii,jj)+1); endendfigure()imshow([Iin,Iout]);title('左:原图 右:处理图')

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第3张图片

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第4张图片a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第5张图片

2.2 使用Matlab 自带函数histeq

%直方图均衡 Histogram equalizationIin = imread('tire.tif');Iout=histeq(Iin);imshow([Iin,Iout]);title('左:原图 右:处理图')

3

总结

直方图均衡方法是一种很好的图像对比度提升方法,但是并不适应所有场景,所以需要在其基础上做改进,历来学者做了不少创新。
不过,这种处理思想以及上述代码,是经典,先搞懂经典,再去优化。

【END】

本文内容来自博客专栏《DIP数字图像处理》

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第6张图片

a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)_第7张图片

你可能感兴趣的:(a*算法matlab代码,ga-grnn,算法matlab代码,imread函数,matlab,matlab,histeq函数,matlab,图像平滑的算法)