Image Scaling and Histogram Equalization

originalscaled
clippedequalized

Original Image

>> pout = imread('pout.tif');
>> imwrite(pout,'pout.jpg');
>> pout = double(pout)/255;

Grayscale stretch

>> a = max(max(pout))

a = 0.8784

>> b = min(min(pout))

b = 0.2902

>> p1 = (pout-b)/(a-b);
>> imwrite(p1,'p1.jpg');

Grayscale clipping

>> p2 = (pout-b)*3;
>> i = find(p2>1);
>> p2(i) = 1;
>> imwrite(p2,'p2.jpg')

Masking the clipped region (saturated area)

>> bw = p2>1;
>> sum(sum(bw))

ans =  775

>> s = size(bw)

s = 291   240

>> s = s(1)*s(2)

s = 69840

>> sum(sum(bw))/s*100

ans = 1.1097 %

>> imshow(bw)
>> imwrite(bw,'bw.jpg');

>> pm = p2 .* not(bw);
>> pmc = cat(3,pm+bw,pm,pm);
imwrite(pmc,'pmc.jpg');

Histogram equalization

>> p3 = histeq(pout);
>> imhist(p3);
>> imwrite(p3,'p3.jpg');

Maintained by John Loomis, last updated 3 June 1998