Fundamentals of Computer Vision Lecture 4 Dr. Roger S. Gaborski Roger S. Gaborski
Transcription
Fundamentals of Computer Vision Lecture 4 Dr. Roger S. Gaborski Roger S. Gaborski
Fundamentals of Computer Vision Lecture 4 Dr. Roger S. Gaborski Roger S. Gaborski 1 QUIZ 1 Closed book except one page of handwritten notes Roger S. Gaborski 2 Intensity Transformation and Spatial Transformation • Intensity – modify each pixel in the image independent of its neighbors • Spatial – modify a pixel as a function of its neighbors (spatial convolution) Roger S. Gaborski 3 If you look at a pixel of an intensity (gray level image- Next Slide) in isolation what can you tell me about the image? Roger S. Gaborski 4 Roger S. Gaborski 5 If you look at a pixel of an intensity (gray level image- Next Slide) in isolation what can you tell me about the image? The brightness or intensity value at that spatial location Roger S. Gaborski 6 What if you inspect a neighborhood of pixel values? Roger S. Gaborski 7 Depends on the neighborhood Sky Region Flag Region (2 rows, 3 columns) The ‘flag region’ contains more information about the image – There is a horizontal line in this region Roger S. Gaborski 8 Can we modify the intensity values to change the image (improve in some way) or extract information from the image (edges, shapes, etc.)? Roger S. Gaborski 9 Spatial Transformation • The general spatial domain processing equation: g(x, y) = T [ f (x, y)] – f (x, y) is the input image – g(x, y) is the output image – T is an operator on f defined over a specific neighborhood Roger S. Gaborski 10 Chapter 3 www.prenhall.com/gonzalezwoodseddins - Define spatial neighborhood about a point, (x, y) - Neighborhood is typically a square or rectangle, but could be other shapes - Center of neighborhood is moved from pixel to pixel starting at the upper left hand corner of the Image - Operator T is applied at each location (x, y) to yield g(x, y) at that location Roger S. Gaborski 11 Intensity Transformations • Let the neighborhood be reduced to a size of 1 x 1 pixel • Now the transformation is only a function of the pixel itself. • This is commonly called an intensity transformation or gray level transformation function: s = T(r) where r is the intensity of f at (x, y) and s is the resulting intensity of g at (x, y) Roger S. Gaborski 12 Intensity Transformations • Assume the range of pixel intensity values is [0,1] • What can be accomplished with transformation T ? Roger S. Gaborski 13 Intensity Transformations >> R = rand([1 4]) R= 0.0272 0.7937 0.9992 0.1102 >> R2 = R .* R ( note .* and not simply * ) R2 = 0.0007 0.6299 0.9985 0.0122 (small numbers are much smaller) >> RSR = sqrt(R) RSR = 0.1649 0.8909 0.9996 0.3320 Roger S. Gaborski 14 R = rand(1, 4) R2 = R .* R RSR = sqrt(R) In this case the data is actually changed Not the only display as in previous lecture Roger S. Gaborski 15 Characteristics: • y = x2 : all pixels become darker • y = sqrt(x): all pixels become brighter • y = x: all pixels remain the same value Output (y) Input (x) Roger S. Gaborski 16 Intensity Transformations • Function imadjust – intensity transformation of gray scale images • g = imadjust( f, [low_in high_in], [low_out, high_out], gamma) – Input - output defined in [0,1] range: • [low_in high_in] [0 1] (min max) • [low_out high_out] [0 1] (min max) Roger S. Gaborski 17 Characteristics: • gamma >1 : all pixels become darker • gamma <1 : all pixels become brighter • gamma =1 : linear transform Gamma specifies the shape of the curve Brighter Output (gamma<1) Darker Output (gamma>1) Chapter 3 www.prenhall.com/gonzalezwoodseddins Roger S. Gaborski 18 >> I = imread('mammogram.tif'); >> figure, imshow(I) Roger S. Gaborski 19 >> I2 = imadjust(I, [.5 .75], [0 1]); >> figure, imshow(I2) Roger S. Gaborski 20 Reduce the amount of tissue Mapped to black: >> I3 = imadjust(I, [.25 .75], [0 1]); >> figure, imshow(I3) Roger S. Gaborski 21 .75 1.0 Output .50 I3 .25 I2 .25 .50 .75 1.0 Roger S. Gaborski Input 22 I4 = imadjust(I, [0, 1], [0, 1], 2) Gamma=2 Roger S. Gaborski 23 Negative of image: >> I4 = imadjust(I,[0 1], [1 0]); >> figure, imshow(I4) Or I4 = imcomplement(I); Roger S. Gaborski 24 Example, continued H = [.5 .5 .6 .7 .8 .2; .6 .3 .8 .9 .2 .4 ] H= 0.5000 0.5000 0.6000 0.7000 0.8000 0.2000 0.6000 0.3000 0.8000 0.9000 0.2000 0.4000 b = imadjust(H, [.3 .7],[.1 .9],1) Roger S. Gaborski 25 1.0 OUTPUT 0 .1 2 .3 .4 .5 .6 .7 .8 .9 Example 0 .1 .2 .3 .4 Roger.5 S. Gaborski .6 .7 .8 .9 1.0 26 INPUT 1.0 OUTPUT 0 .1 2 .3 .4 .5 .6 .7 .8 .9 Example:b=imadjust(H, [.3 .7],[.1 .9],1) 0 .1 .2 .3 .4 Roger.5 S. Gaborski .6 .7 .8 .9 1.0 27 INPUT 1.0 OUTPUT 0 .1 2 .3 .4 .5 .6 .7 .8 .9 Example:b=imadjust(H, [.3 .7],[.1 .9],1) 0 .1 .2 .3 .4 Roger.5 S. Gaborski .6 .7 .8 .9 1.0 28 INPUT Example, continued H = [.5 .5 .6 .7 .8 .2; .6 .3 .8 .9 .2 .4 ] H= 0.5000 0.5000 0.6000 0.7000 0.8000 0.2000 0.6000 0.3000 0.8000 0.9000 0.2000 0.4000 b=imadjust(H, [.3 .7],[.1 .9],1) b= 0.5000 0.5000 0.7000 0.9000 0.9000 0.1000 0.7000 0.1000 0.9000 0.9000 0.1000 0.3000 Roger S. Gaborski 29 Logarithmic Transformation • g = log(f ), where f is the input image – Issue: log(0) = -Inf – Any zeros in the input will be mapped to -Inf – Note: log(1) = 0 • g = log(1+f ) – This ensures that log(f ) is never mapped to -Inf – Similar to gamma transformation – Commonly used for dynamic range compression Roger S. Gaborski 30 Contrast Stretching Transformation • Creates an image with higher contrast than the input image: 1 s T (r ) m 1 ( )E r – r: intensities of input; – s: intensities of output; – m: threshold point (see graph) ; – E: controls slope. Roger S. Gaborski 31 Chapter 3 www.prenhall.com/gonzalezwoodseddins E controls the slope of the function Roger S. Gaborski 32 >> I = imread('mammogram.tif'); >> figure, subplot(2,2,1), imshow(I), title('I') >> E= 1; >> g = 1./(1+(m./(double(I)+eps)).^E); >> subplot(2,2,2), imshow(g),title('E=1') >> E= 3; >> g = 1./(1+(m./(double(I)+eps)).^E); >> subplot(2,2,3), imshow(g),title('E=3') >> E= 5; >> g = 1./(1+(m./(double(I)+eps)).^E); >> subplot(2,2,4), imshow(g),title('E=5') Roger S. Gaborski 33 1 s T (r ) m E 1 ( ) r Output(s) Input(r) Roger S. Gaborski 34 Roger S. Gaborski 35 Chapter 3 www.prenhall.com/gonzalezwoodseddins Input Output Roger S. Gaborski 36 Gray Image >> I = imread('Flags.jpg'); >> figure, imshow(I) % uint8 >> Im = im2double(I); % convert to double >> Igray = (Im(:,:,1)+Im(:,:,2)+Im(:,:,3))/3; >> figure, imshow(Igray) There is also the rgb2gray function that results in a slightly different image Roger S. Gaborski 37 rgb2gray help rgb2gray rgb2gray Convert RGB image or colormap to grayscale. rgb2gray converts RGB images to grayscale by eliminating the hue and saturation information while retaining the luminance. I = rgb2gray(RGB) converts the truecolor image RGB to the grayscale intensity image I. Roger S. Gaborski 38