限制对比度自适应直方图均衡

    限制对比度自适应直方图均衡(Contrast Limited Adaptive histgram equalization/CLAHE),在改善图像方面取得了很好效果。若是场景深度变化不大,也可以用来去雾。但是算法并不总是很稳定,对有些图像处理效果不是很好。

    matlab的adapthisteq函数对彩色图像不支持,可以采用了两种方式处理,一种是各通道分开处理,另外一种是转化为HSV空间,对V做CLAHE算法。

    第一种方法:我是将三维彩色图像转化成二维矩阵,处理完成之后,再转换成三维显示。实验表明,降维处理和各个通道分开处理再合成,效果一样。下面是matlab代码:

function imDst=clahe(filename)
imSrc = imread(filename);
sz = size(imSrc);
hei = sz(1);
wid = sz(2);

imSrc2 = reshape(imSrc,hei,wid*3);
imDst2 = adapthisteq(imSrc2);
imDst = reshape(imDst2,hei,wid,3);
figure,imshow([imSrc imDst]);
end

    第二种方法,也很简单,就是用rgb2hsv,hsv2rgb进行颜色空间转换,然后对亮度分量V做限制对比度直方图均衡化处理。代码如下:  

function imDst=clahe2(filename)
RGB = imread(filename);
HSV = rgb2hsv(RGB); 

V = HSV(:,:,3); 

% Perform CLAHE
HSV(:,:,3) = adapthisteq(V,'NumTiles',...
                          [8 8],'ClipLimit',0.01);

% Convert back to RGB color space
imDst = hsv2rgb(HSV);

% Display the results
figure, imshow(imDst);
         不过,RGB通道分开处理,可能导致色彩偏差,没有第二种好。
    以下是原图,方法一,方法二处理效果。
限制对比度自适应直方图均衡_第1张图片
           原图
限制对比度自适应直方图均衡_第2张图片
RGB通道分离处理
限制对比度自适应直方图均衡_第3张图片
转换HSV通道处理





你可能感兴趣的:(图像处理)