function y = imcmprss(x) % compression of dynamic range y = double(x); miny = min(y(:)); maxy = max(y(:)); if (2*miny > miny + maxy) y = y - (miny + maxy)/2; maxy = (maxy - miny)/2; end if miny < 0, y = y - miny; maxy = maxy - miny; end c = 255/log(1 + maxy); y = c*log(1+y); y = uint8(round(y));