image thumbnail
from MATLAB FOTOSHOP by Divakar Roy
Inspired By Adobe Photoshop

output_img=autocontrast(input_img)
function output_img=autocontrast(input_img)

low_limit=0.008;
up_limit=0.992;
[m1 n1 r1]=size(input_img);
input_img=double(input_img);
%--------------------calculation of vmin and vmax----------------------
for k=1:r1
    arr=sort(reshape(input_img(:,:,k),m1*n1,1));
    v_min(k)=arr(ceil(low_limit*m1*n1));
    v_max(k)=arr(ceil(up_limit*m1*n1));
end
%----------------------------------------------------------------------
if r1==3
    v_min=rgb2ntsc(v_min);
    v_max=rgb2ntsc(v_max);
end
%----------------------------------------------------------------------
input_img=(input_img-v_min(1))/(v_max(1)-v_min(1));
output_img=uint8(input_img.*255);

Contact us at files@mathworks.com