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. Why Digital Image Processing?
Machine
Learning
Gesture
Control
Face
Recognition
Computer
Vision
Biomedical
Image Pro.
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. 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. 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. 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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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. 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. 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