一、背景
1、对比度和直方图均衡HE
“对比度contrast ratio”这一概念,类似于“动态范围dynamic range”,衡量的是图像中亮区与暗区的比例。
对比度实际上没有统一的测量标准,参见:维基百科 contrast ratio
但我们知道,对比度是影响图像视觉效果的重要因素。
对比度小的图像,其色彩层次少,看起来要么太亮,要么太暗。如下图(太暗):
Figure: Cloudy Night View
实际上摄影师是为了追求这种效果啦,但我们还是拿来做一个demo。
利用MATLAB内置的histeq函数,可以得到对比度增强的图片:
img=imread('Cloudy Night View.jpg');
rimg=img(:,:,1);
gimg=img(:,:,2);
bimg=img(:,:,3);
resultr=histeq(rimg);
resultg=histeq(gimg);
resultb=histeq(bimg);
result=cat(3,resultr,resultg,resultb);
imwrite(result,'result.jpg')
Figure: Cloudy Night View after HE
图像清晰了太多有没有!!!很多隐藏的细节都被挖掘出来了。
当然,这个结果有些色彩失真。我们尝试在Lab color space上进行,据说是最接近人眼特性的色彩空间:
cform2lab = makecform('srgb2lab');
imgLAB = applycform(img, cform2lab);
L = imgLAB(:,:,1);
imgLAB(:,:,1) = histeq(L);
cform2srgb = makecform('lab2srgb');
result2 = applycform(imgLAB, cform2srgb);
imwrite(result2,'result2.jpg')
Figure: Cloudy Night View after HE in Lab space
可以看到,色彩失真有所改善。
直方图均衡的本质是灰度值映射。而映射函数可以由分布曲线(累积直方图)得到:
DB=DmaxA0∑i=