基于直方图的图像增强算法(HE、CLAHE)之(一)

直方图是图像色彩统计特征的抽象表述。基于直方图可以实现很多有趣的算法。例如,图像增强中利用直方图来调整图像的对比度、有人利用直方图来进行大规模无损数据隐藏、还有人利用梯度直方图HOG来构建图像特征进而实现目标检测。本节我们就来讨论重要的直方图均衡化算法(Histogram equalization),说它重要是因为以此为基础后续又衍生出了许多实用而有趣的算法。

 

如果一幅图像的像素灰度值在一个过于有限的范围内聚集,那么图像的程序效果即会很糟糕,直接观感就是对比度很弱。下图来自维基百科,第一幅图的直方图分布非常不均衡。如果把直方图均匀地延展到整个分布域内,则图像的效果显得好了很多。

Matlab中提供了现成的函数“histeq()”来实现图像的直方图均衡。但为了演示说明算法的原理,下面我将在Matlab中自行编码实现图像的直方图均衡。通过代码来演示这个算法显然更加直观,更加易懂。当然,其实我还不得不感叹,如果仅仅是作为图像算法研究之用,Matlab确实非常好用。

 

首先读入图像,并将其转化为灰度图。然后提取图像的长和宽。

image = imread('Unequalized_Hawkes_Bay_NZ.jpg');
Img = rgb2gray(image);
[height,width]=size(Img);


然后绘制一下原始图像的直方图。

[counts1, x] = imhist(Img,256);
counts2 = counts1/height/width;
stem(x, counts2);

 

©️2020 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客 返回首页
实付19.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值