MATLAB LECTURE 2 Image Enhancement in the Spatial Domain (MATLAB) MAIN INTENSITY TRANSFORMATION FUNCTION Photographic negative (imcomplement). Log transformation ( c*log(1+double(f)) ). Power-Law (gamma) transformation (imadjust). IN MATLAB: FUNCTION IMADJUST Adjust image intensity values or colormap Syntax : (in gray images) J = imadjust(I) maps the values in intensity image I to new values in J. This increases the contrast of the output image J. J = imadjust(I,[low_in high_in],[low_out high_out]) maps the values in intensity image I to new values in J such that values between low_in and high_in map to values between low_out and high_out. FUNCTION IMADJUST J = imadjust(...,gamma) maps the values in intensity image I to new values in J, where gamma specifies the shape of the curve describing the relationship between the values in I and J. FUNCTION IMADJUST (CONT.) If gamma is less than 1, the mapping is weighted toward higher (brighter) output values. If gamma is greater than 1, the mapping is weighted toward lower (darker) output values. If you omit the argument, gamma defaults to 1 (linear mapping). IMAGE ADJUST EXAMPLES (MATLAB CODE) Adjust a low-contrast grayscale image. I = imread('pout.tif'); J = imadjust(I); figure, imshow(I), figure, imshow(J) IMAGE ADJUST EXAMPLES Adjust the grayscale image, specifying the contrast limits. K1 = imadjust(I,[0.3 0.7],[.2 .6]); figure, imshow(K1) IMAGE ADJUST EXAMPLES Adjust the gamma L1 = imadjust(I,[], [ ],2); figure, imshow(L1) L2 = imadjust(I,[], [ ],.3); figure, imshow(L2) NEGATIVE IMAGE Obtaining a negative image I = imread('pout.tif'); K1 =imadjust(I, [0 1] , [1 0]); K2 = imcomplement(I); imshow(I), figure, imshow(K1), figure, imshow(K2) STRETCHLIM EXAMPLE Contrast Stretching: LOW_HIGH = stretchlim(I): returns LOW_HIGH, a twoelement vector of pixel values that specify lower and upper limits that can be used for contrast stretching image I I = imread('pout.tif'); J = imadjust(I, stretchlim(I), []); imshow(I), figure, imshow(J) LOGARITHMIC Logarithmic: g=c*log(1+double(f)) I = imread('pout.tif'); g=c*log(1+double(I)) gs=im2uint8(mat2gray(g)); IN MATLAB: IM2BW Convert an image to a binary image, based on threshold BW = Im2bw(I, level) : The output image BW replaces all pixels in the input image with luminance greater than level with the value 1 (white) and replaces all other pixels with the value 0 (black) I: is the grayscale image level : in the range [0,1] Example: I = imread('pout.tif'); I2 = im2bw(I, 0.5); imshow(I2)