Image Scaling and Histogram Equalization
 |  |
original | scaled |
 |  |
clipped | equalized |
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