Introductory Digital Image Processing using Matlab, IIT Roorkee


Published on

Introduction to Digital Image Processing using Matlab, IIT Roorkee. Organized by Electronics Section, Hobbies Club.
Reference: Gonzalez and Woods

Published in: Technology, Art & Photos
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Introductory Digital Image Processing using Matlab, IIT Roorkee

  1. 1. Welcome, students! Let’s learn something cool!
  2. 2. Is this cool? Meet Pranav Mistry Father of Sixth Sense Technology PhD, MIT Media Labs M.Des, IIT Bombay BE, Computer Science, Nirma Institute of Technology
  3. 3. Why Digital Image Processing? Machine Learning Gesture Control Face Recognition Computer Vision Biomedical Image Pro.
  4. 4. So, Let’s start: Lecture Overview Lecture 1: Monday, 28 Oct, 2013 Duration : 90 Mins Lecture 2: Tuesday, 29 Oct, 2013 Duration : 90 Mins Topics: Topics: 1. Basic Introduction and Matlab 5. Noise Filtering and Segmentation 2. Image Handling 6. Colour Image Analysis 3. Operations on Images 7. Gesture Recognition- Case Study 4. Sample Exercises 8. Textbook and beyond Introduction To Digital Image Processing 10/25/2013 4
  5. 5. 1.Basic Introduction and Matlab Digital Image: The digital image is essentially a fixed number of rows and columns of pixels. Pixels are the smallest individual element in an image, holding quantized values that represent the brightness of a given color at any specific point. -Monochrome/Grayscale Image has 1 value per pixel, while Colour Image has 3 values per pixel. (R, G, B) monochrome image= f( x, y) -where x and y are spatial coordinates -f gives amplitude of intensity -Colour image= 3 R,G,B monochrome images Introduction To Digital Image Processing 10/25/2013 5
  6. 6. Notation to represent a pixel : where, Pixel Location: p = (r , c) Pixel Intensity Value: I(p) = I(r , c) [ p, I(p)] Note: Origin in case of Matlab Image Processing Toolbox is not p=(0,0) but p=(1,1)
  7. 7. The MATrix LABoratory MATLAB is a dynamically typed language -Means that you do not have to declare any variables -All you need to do is initialize them and they are created MATLAB treats all variables as matrices -Scalar – 1 x 1 matrix. Vector – 1 x N or N x 1 matrix -Why? Makes calculations a lot faster These MATRICES can be manipulated in two ways: Cleve Moler Stanford University 1970 Introduction To Digital Image Processing -Matrix Manipulation (usual matrix operations) -Array Manipulation (using dot (.) operator as prefix) -Vector Manipulation 10/25/2013 7
  8. 8. Basics of MATrix LABoratory What is the best way to learn Matlab? - Using the ‘Help’ file (sufficient for 90% operations) - Practicing along with it. Common Errors: 1. Select ‘Image Processing Toolbox’ before starting to use various image functions. (only available with 2008b or newer) 2. Always make sure whether current folder is same as desired. 3. Forgetting to use help command Introduction To Digital Image Processing 10/25/2013 8
  9. 9. 2. Image Handling Matlab Functions - function[output]=name(inputs) Create and save new ‘.m’ file in the current directory Some inbuilt functions (in Image Pro. Toolbox) to remember: - If a statement doesn’t fit a line, we use ‘…’ , to indicate it continues in next line help, clc, type Imread(‘filename.ext’) imwrite(g,‘filename.ext’,’compression’,’parameter’,’resolution’,[colores,rowres],‘quality’) mat2gray(f,[fmin,fmax]) imshow(f(:,:,x)) figure -for holding on to an image and displaying other (used as prefix with,) whos -for displaying size of all images currently being used in workspace Question: How to find intensity of a given pixel? Introduction To Digital Image Processing 9
  10. 10. Image Handling (Continued) -Accessing subset of an image: For monochromatic images: im2 = im(row1:row2,col1:col2); For colour images: im2 = im(row1:row2,col1:col2,:); Methods to fill lacking data: -Resizing an image: 1.’nearest’= as neighborhood 2.’bilinear’=linear interpolation 3.’bicubic’=cubic int. (*best) out = imresize(im, scale, ‘method’); or out = imresize(im, [r c], ‘method’); -Rotating an image: out = imrotate(im, angle_in_deg, ‘method’); Introduction To Digital Image Processing 10/25/2013 10
  11. 11. 3. Operation on Images : Transformations G( x, y) = T [f ( x, y)] where, G= Processed Image T= Operator f=input image -Brightness/Intensity Transformation: im2=c*im; im2=im+c; -Contrast Transformation: If c > 1, c>0 increasing brightness If c < 1, c<0 decreasing brightness out = imadjust(im, [], [], gamma); Contrast represents how the intensity changes from min to max value. Introduction To Digital Image Processing 10/25/2013 11
  12. 12. Operations on Images: Spatial Filtering a.k.a. neighborhood processing 1. First we need to create an N x N matrix called a mask, kernel, filter (or neighborhood). 2. The numbers inside the mask will help us control the kind of operation we’re doing. 3. Different numbers allow us to blur, sharpen, find edges, etc. 4. We need to master convolution first, and the rest is easy! G= [ abc def ghi ] Introduction To Digital Image Processing H= [ z yx wvu tsr ] Mask out = a*z + b*y + c*x + d*w + e*v + f*u + g*t + h*s + i*r, 10/25/2013 12
  13. 13. Application: Before After What do we observe? Introduction To Digital Image Processing 10/25/2013 13
  14. 14. Application: Blurring Blurring: - Reduces noise (high frequency) Reduces edges (high frequency) Is essentially a low pass filter (eliminates high f) Can be done through averaging filter For colour images, we can blur each layer independently mask = fspecial(‘average’, N); out = imfilter(im, mask,’conv’); More the Mask size, More blur in Result Introduction To Digital Image Processing 10/25/2013 14
  15. 15. Application: Edge Detection What is an edge? – ‘A place of change’. f’( x, y)= f( x-1, y) – f( x+1,y) This is a Horizontal filter. (puts more weight on central pixel) EXERCISE: Use following masks in fspecial function and find out what they do- Gaussian, Laplacian, Laplacian of Gaussian (LoG) Alternate way: Canny Edge Detector (most powerful edge detector) [ g, t]= edge (f, ‘canny’, T , sigma) Introduction To Digital Image Processing How do we do this in MATLAB? 1) Create our Prewitt or Sobel Horizontal Masks: mask = fspecial(‘prewitt’); or mask = fspecial(‘sobel’); 2) Convolve with each mask separately dX = imfilter(im, mask); dY = imfilter(im, mask2); 3)Find the overall magnitude mag = sqrt(double(dX).^(2) + double(dY).^(2)); 10/25/2013 15
  16. 16. 4. Noise Filtering ▪ In reality, pixel corruption takes place during process of acquisition or transmission. There is a need to remove(okay, ‘try to’) this noise. ▪ As an exercise, let’s add up artificial noise in an image using function: Gaussian n = imnoise ( im, ‘salt & pepper’, density); Use blurring filter against ‘Gaussian’ noise. Use median filter against ‘salt & pepper noise’. out = medfilt2( n , [M N]); Salt & Pepper Introduction To Digital Image Processing Poisson 10/25/2013 16
  17. 17. Segmentation division of an image into segments or parts (region of interests) ▪ This division is done mainly on the basis of : (a) grey level (b) texture (d) depth (c) motion (e) colour Can you think of ways in which this will prove useful? Introduction To Digital Image Processing 10/25/2013 17
  18. 18. Segmentation Techniques One way is already covered. Can you name that? Thresholding : Simplest Segmentation Technique Pixels are grouped into “Object” and “Background” – Input: Gray scale image – Output: Binary image Implementing in Matlab: output = im2bw(Image, k) where, K=T/largest pixel size Introduction To Digital Image Processing Other Methods: 1. Region Growing: A method that clubs similar property pixels. (Satellites) 2. Watershed Transform: grayscale intensity is interpreted as distance. (topographical use) 10/25/2013 18
  19. 19. Colour Image Analysis Trichromacy theory :All colors found in nature can naturally be decomposed into Red, Green and Blue. RGB Cube Other models: CMY, NTSC, YCbCr, HSI, CMYK, HSV Introduction To Digital Image Processing 10/25/2013 19
  20. 20. Colour Image Analysis ▪ Basic Conversions: Loss of information due to size of palette What is an indexed image? An image having two components: 1. Data Matrix 2. Colour Map (a.k.a. ‘palette’) What is its use? 1.To make display process fast 2.To reduce size of image Introduction To Digital Image Processing 10/25/2013 20
  21. 21. Gesture Recognition- Case Study Introduction To Digital Image Processing 10/25/2013 21