引言
自动色阶算法用于图像增强,去雾等,其思想去掉像素值最高的比例,去掉像素值最低的一些比例,然后在将图像的其余像素值进行线性映射或者伽马校正至[0, 255]区间。如下图,在图像处理中是不是很熟悉?!
本文主要参考人在旅途的博客,采用matlab语言实现,算法不在详细叙述,在此代码留做备注。
代码
autolevel:
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);
minR =find(CumRed>=PixelAmount*lowCut,