自动色阶算法用于图像增强,去雾等,其思想去掉像素值最高的比例,去掉像素值最低的一些比例,然后在将图像的其余像素值进行线性映射或者伽马校正至[0, 255]区间。如下图,在图像处理中是不是很熟悉?!
本文主要参考人在旅途的博客,采用matlab语言实现,算法不在详细叙述,在此代码留做备注。http://www.cnblogs.com/Imageshop/archive/2011/11/13/2247614.html。
以下是程序代码:
function imDst = autolevel(varargin)
[I,lowCut,highCut] =parse_inputs(varargin{:});
[hei,wid,~] = size(I);
PixelAmount = wid * hei;
if size(I,3)==3
[HistRed,~] = imhist(I(:,:,1));
[HistGreen,~] = imhist(I(:,:,2));
[HistBlue,~] = imhist(I(:,:,3));
CumRed = cumsum(HistRed);
CumGreen = cumsum(HistGreen);
CumBlue = cumsum(HistBlue);