SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Welcome, students!
Let’s learn something cool!
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
Why Digital Image Processing?

Machine
Learning

Gesture
Control

Face
Recognition

Computer
Vision

Biomedical
Image Pro.
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
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
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)
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
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
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
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
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
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
Application:
Before

After

What do we observe?
Introduction To Digital Image Processing

10/25/2013

13
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
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
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
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
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
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
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
Gesture Recognition- Case Study

Introduction To Digital Image Processing

10/25/2013

21
Introductory Digital Image Processing using Matlab, IIT Roorkee

Weitere ähnliche Inhalte

Was ist angesagt?

Image proceesing with matlab
Image proceesing with matlabImage proceesing with matlab
Image proceesing with matlab
Ashutosh Shahi
 
Digital image processing question bank
Digital image processing question bankDigital image processing question bank
Digital image processing question bank
Yaseen Albakry
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation ppt
Gichelle Amon
 
Image segmentation
Image segmentationImage segmentation
Image segmentation
Deepak Kumar
 

Was ist angesagt? (20)

Image proceesing with matlab
Image proceesing with matlabImage proceesing with matlab
Image proceesing with matlab
 
Matlab Image Enhancement Techniques
Matlab Image Enhancement TechniquesMatlab Image Enhancement Techniques
Matlab Image Enhancement Techniques
 
Image degradation and noise by Md.Naseem Ashraf
Image degradation and noise by Md.Naseem AshrafImage degradation and noise by Md.Naseem Ashraf
Image degradation and noise by Md.Naseem Ashraf
 
Image classification with Deep Neural Networks
Image classification with Deep Neural NetworksImage classification with Deep Neural Networks
Image classification with Deep Neural Networks
 
Digital image processing question bank
Digital image processing question bankDigital image processing question bank
Digital image processing question bank
 
Image compression
Image compressionImage compression
Image compression
 
Histogram Processing
Histogram ProcessingHistogram Processing
Histogram Processing
 
Image segmentation ppt
Image segmentation pptImage segmentation ppt
Image segmentation ppt
 
Image sampling and quantization
Image sampling and quantizationImage sampling and quantization
Image sampling and quantization
 
Fundamentals steps in Digital Image processing
Fundamentals steps in Digital Image processingFundamentals steps in Digital Image processing
Fundamentals steps in Digital Image processing
 
Introduction to image processing-Class Notes
Introduction to image processing-Class NotesIntroduction to image processing-Class Notes
Introduction to image processing-Class Notes
 
support vector regression
support vector regressionsupport vector regression
support vector regression
 
Chapter 4 Image Processing: Image Transformation
Chapter 4 Image Processing: Image TransformationChapter 4 Image Processing: Image Transformation
Chapter 4 Image Processing: Image Transformation
 
Image segmentation
Image segmentationImage segmentation
Image segmentation
 
Image processing
Image processingImage processing
Image processing
 
PPT on Data Science Using Python
PPT on Data Science Using PythonPPT on Data Science Using Python
PPT on Data Science Using Python
 
1. digital image processing
1. digital image processing1. digital image processing
1. digital image processing
 
Image segmentation
Image segmentationImage segmentation
Image segmentation
 
Lecture 13 (Usage of Fourier transform in image processing)
Lecture 13 (Usage of Fourier transform in image processing)Lecture 13 (Usage of Fourier transform in image processing)
Lecture 13 (Usage of Fourier transform in image processing)
 
Image transforms
Image transformsImage transforms
Image transforms
 

Andere mochten auch

Andere mochten auch (8)

Snapshots Taken At Iit Roorkee
Snapshots Taken At Iit RoorkeeSnapshots Taken At Iit Roorkee
Snapshots Taken At Iit Roorkee
 
Sattviko idea cafe- The free coworking space at IIT Roorkee
Sattviko idea cafe- The free coworking space at IIT RoorkeeSattviko idea cafe- The free coworking space at IIT Roorkee
Sattviko idea cafe- The free coworking space at IIT Roorkee
 
Acoustics case study IIT Roorkee Church
Acoustics case study IIT Roorkee ChurchAcoustics case study IIT Roorkee Church
Acoustics case study IIT Roorkee Church
 
Department ppt_IIT Roorkee
Department ppt_IIT RoorkeeDepartment ppt_IIT Roorkee
Department ppt_IIT Roorkee
 
IIT Desk top study (Roorkee)
IIT Desk top study (Roorkee)IIT Desk top study (Roorkee)
IIT Desk top study (Roorkee)
 
Solar pannels 2
Solar pannels 2Solar pannels 2
Solar pannels 2
 
Streetscape of IIT Roorkee
Streetscape of IIT RoorkeeStreetscape of IIT Roorkee
Streetscape of IIT Roorkee
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Ähnlich wie Introductory Digital Image Processing using Matlab, IIT Roorkee

Introduction to Machine Vision
Introduction to Machine VisionIntroduction to Machine Vision
Introduction to Machine Vision
Nasir Jumani
 
Laureate Online Education Internet and Multimedia Technolog.docx
Laureate Online Education    Internet and Multimedia Technolog.docxLaureate Online Education    Internet and Multimedia Technolog.docx
Laureate Online Education Internet and Multimedia Technolog.docx
DIPESH30
 
ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)
Hasitha Ediriweera
 
Designed by Identity MLP
Designed by Identity MLP Designed by Identity MLP
Designed by Identity MLP
butest
 

Ähnlich wie Introductory Digital Image Processing using Matlab, IIT Roorkee (20)

Introduction to Machine Vision
Introduction to Machine VisionIntroduction to Machine Vision
Introduction to Machine Vision
 
BMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialBMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorial
 
الوسائط المتعددة Multimedia تاج
الوسائط المتعددة  Multimedia تاجالوسائط المتعددة  Multimedia تاج
الوسائط المتعددة Multimedia تاج
 
Image_processing
Image_processingImage_processing
Image_processing
 
Log polar coordinates
Log polar coordinatesLog polar coordinates
Log polar coordinates
 
Laureate Online Education Internet and Multimedia Technolog.docx
Laureate Online Education    Internet and Multimedia Technolog.docxLaureate Online Education    Internet and Multimedia Technolog.docx
Laureate Online Education Internet and Multimedia Technolog.docx
 
Image De-Noising Using Deep Neural Network
Image De-Noising Using Deep Neural NetworkImage De-Noising Using Deep Neural Network
Image De-Noising Using Deep Neural Network
 
IMAGE DE-NOISING USING DEEP NEURAL NETWORK
IMAGE DE-NOISING USING DEEP NEURAL NETWORKIMAGE DE-NOISING USING DEEP NEURAL NETWORK
IMAGE DE-NOISING USING DEEP NEURAL NETWORK
 
Image De-Noising Using Deep Neural Network
Image De-Noising Using Deep Neural NetworkImage De-Noising Using Deep Neural Network
Image De-Noising Using Deep Neural Network
 
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSINGAN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
AN EMERGING TREND OF FEATURE EXTRACTION METHOD IN VIDEO PROCESSING
 
ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)ImageProcessingWithMatlab(HasithaEdiriweera)
ImageProcessingWithMatlab(HasithaEdiriweera)
 
Fundamentals of image processing
Fundamentals of image processingFundamentals of image processing
Fundamentals of image processing
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
IMAGE SEGMENTATION.
IMAGE SEGMENTATION.IMAGE SEGMENTATION.
IMAGE SEGMENTATION.
 
Ch1.pptx
Ch1.pptxCh1.pptx
Ch1.pptx
 
Designed by Identity MLP
Designed by Identity MLP Designed by Identity MLP
Designed by Identity MLP
 
computervision1.pdf it is about computer vision
computervision1.pdf it is about computer visioncomputervision1.pdf it is about computer vision
computervision1.pdf it is about computer vision
 
Removal of Gaussian noise on the image edges using the Prewitt operator and t...
Removal of Gaussian noise on the image edges using the Prewitt operator and t...Removal of Gaussian noise on the image edges using the Prewitt operator and t...
Removal of Gaussian noise on the image edges using the Prewitt operator and t...
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
project_final
project_finalproject_final
project_final
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Introductory Digital Image Processing using Matlab, IIT Roorkee

  • 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
  • 13. Application: Before After What do we observe? Introduction To Digital Image Processing 10/25/2013 13
  • 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
  • 21. Gesture Recognition- Case Study Introduction To Digital Image Processing 10/25/2013 21