![Page 1: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/1.jpg)
Introduction to Digital Image Processing
Ranga Rodrigo
November 13, 2011
1/112
![Page 2: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/2.jpg)
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
2/112
![Page 3: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/3.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
3/112
![Page 4: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/4.jpg)
What Is Digital Image Processing?
Digital image processing helps us enhance images to make them visuallypleasing, or accentuate regions or features of an image to betterrepresent the content.For example, we may wish to enhance the brightness and contrast tomake a better print of a photograph, similar to popular photo-processingsoftware.In a magnetic resonance image (MRI) of the brain, we may want toaccentuate a certain region of image intensities to see certain parts ofthe brain.
4/112
![Page 5: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/5.jpg)
Image analysis and computer vision, which go beyond image processing,helps us to make decisions based on the contents of the image.This course, vision for automation, will give you the basic knowledgerequired to enter into this exciting field, and equip you with basic tools todo image processing and computer vision and apply the knowledge inautomation.
5/112
![Page 6: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/6.jpg)
What Is Computer Vision?
The goal is the emulation of the visual capability of human beings usingcomputers.
In other words, computer vision is making the machine see as we do!It is challenging.Steps:
1 Image acquisition2 Image manipulation3 Image understanding4 Decision making
6/112
![Page 7: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/7.jpg)
What Is Computer Vision?
The goal is the emulation of the visual capability of human beings usingcomputers.In other words, computer vision is making the machine see as we do!
It is challenging.Steps:
1 Image acquisition2 Image manipulation3 Image understanding4 Decision making
6/112
![Page 8: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/8.jpg)
What Is Computer Vision?
The goal is the emulation of the visual capability of human beings usingcomputers.In other words, computer vision is making the machine see as we do!It is challenging.
Steps:1 Image acquisition2 Image manipulation3 Image understanding4 Decision making
6/112
![Page 9: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/9.jpg)
What Is Computer Vision?
The goal is the emulation of the visual capability of human beings usingcomputers.In other words, computer vision is making the machine see as we do!It is challenging.Steps:
1 Image acquisition2 Image manipulation3 Image understanding4 Decision making
6/112
![Page 10: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/10.jpg)
Main Driving Technologies
Signal processing.Multiple view geometry.Optimization.Pattern recognition and machine learning.Hardware and algorithms.
7/112
![Page 11: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/11.jpg)
Applications 1
Automotive:Lane departure warning systems.Head tracking systems for drowsiness detection.Driver assistance systems.Reading automobile license plates, and traffic management.
Photography:In camera face detection [2], red eye removal, and other functions.Automatic panorama stitching [1].
1(From http://www.cs.ubc.ca/spider/lowe/vision.html)8/112
![Page 12: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/12.jpg)
Applications
Movie and video (a very big industry):Augmented reality.Tracking objects in video or film and solving for 3-D motion to allow forprecise augmentation with 3-D computer graphics.Multiple cameras to precisely track tennis and cricket balls.Human expression recognition.Software for 3-D visualization for sports broadcasting and analysis.Tracking consistent regions in video and insert virtual advertising.Tracking for character animation.Motion capture, camera tracking, panorama stitching, and building 3Dmodels for movies.
9/112
![Page 13: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/13.jpg)
Camera Tracking
Show 2d3 video.
10/112
![Page 14: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/14.jpg)
Applications
Games:Tracking human gestures for playing games or interacting with computers.Tracking the hand and body motions of players (to control the SonyPlaystation).Image-based rendering, vision for graphics.
General purpose:Inspection and localization tasks, people counting, biomedical, and security.etc.Object recognition and navigation for mobile robotics, grocery retail, andrecognition from cell phone cameras.Laser-based 3D vision systems for use on the space shuttles and otherapplications.Image retrieval based on content.
11/112
![Page 15: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/15.jpg)
Applications
Industrial automation (a very big industry):Vision-guided robotics in the automotive industry.Electronics inspection systems for component assembly.
Medical and biomedical (maturing):Vision to detect and track the pose of markers for surgical applications,needle insertion, and seed planting.Teleoperations.Quantitative analysis of medical imaging, including diagnosis such ascancer.
Security and biometrics (thriving):Intelligent video surveillance.Biometric face, fingerprint, and iris recognition.Behavior detection.
12/112
![Page 16: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/16.jpg)
Minimal Invasive Surgery
13/112
![Page 17: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/17.jpg)
Areas of Advancement
Hardware.Image segmentation.3-D reconstruction.Object detection.Navigation.Scene understanding.
14/112
![Page 18: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/18.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
15/112
![Page 19: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/19.jpg)
What Is a Digital Image?
DefinitionAn image may be defined as a two-dimensional function, f (x, y), where x andy are spatial coordinates, and the amplitude of f at any pair of coordinates(x, y) is called the intensity of gray level of f of the image at that point.
DefinitionWhen x, y , and the amplitude values of f are all finite, discrete quantities, wecall the image a digital image.
16/112
![Page 20: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/20.jpg)
Digital Image Representation
A digital image can thus be treated as a 2-D array of integers. Let’sdenote a digital image as f (i , j ). The variables take following values:
i ∈ [0,h −1], where h is the height of the image.j ∈ [10, w −1], where w is the width of the image.f (i , j ) ∈ [0,L−1], where L−1 = 255 for an 8-bit image.
We can formally write this as
f : [0,h −1]× [0, w −1] 7→ [0,L−1]. (1)
In Matlab or Octave indices i takes the values form 1 to h, and index jtakes the values from 1 to w .
17/112
![Page 21: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/21.jpg)
j
i
0
0
h −1
w −1
i0
j0
Figure 1: Digital image coordinates. Here, i ∈ [0,h −1] and j ∈ [0, w −1]. In Matlab andOctave, i ∈ [1,h] and j ∈ [1, w]. f (i , j ) is the value of the pixel at coordinate (i , j ). Forconvenience, we say f (i , j ) is the values of pixel (i , j ).
18/112
![Page 22: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/22.jpg)
Pixels
A digital images consists of a finite number of elements.These elements are referred to as picture elements, or pixels.A grayscale digital image can be seen as a two-dimensional array ofpixels.f (i0, j0) is the grayscale values of the pixel at coordinate (i0, j0).
19/112
![Page 23: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/23.jpg)
Color Images
A color image can be represented using three functions fR (x, y), fG (x, y),and fB (x, y), representing the red, green and blue values respectively.We can interpret a digital color image as consisting of threetwo-dimensional arrays.
20/112
![Page 24: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/24.jpg)
Imaging Modalities
Optical.Other bands: infrared, radio.Gamma: PET (positron emission tomography).Ultrasound.X-ray and CT.MRI.
21/112
![Page 25: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/25.jpg)
Image Formation
scene plane
image plane
camera
22/112
![Page 26: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/26.jpg)
Camera Geometry
C Z
Y
X
P
x
f
C is the camera center and C Z is the optical axis. x is the image of the worldpoint X . f is the focal length and x has image coordinates ( f X
Z , f YZ ) if the
image center is P and image coordinate axes are X and Y .
23/112
![Page 27: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/27.jpg)
Image Resolution and Dots Per Inch
Resolution is the number of pixels in the image, e.g., 800×600.The same image with a particular resolution can be displayed with acertain number of dots per inch (DPI).If we display an 800×600 image at 100 DPI, the image will be 8 incheswide and 6 inches tall.Typically at least 300 DPI is needed for good print quality.
24/112
![Page 28: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/28.jpg)
Figure 2 shows the effects of changing image resolution.
(a) 320×240, 300 DPI
(b) 160×120, 300 DPI
(c) 80×60, 300 DPI (d) 40×30, 300 DPI
Figure 2: Effect of resolution with the same DPI.
25/112
![Page 29: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/29.jpg)
Figure 3 shows the effects of changing dots-per-inch value.
(a) 160×120, 150 DPI
(b) 160×120, 300 DPI
Figure 3: Effect of DPI with the same resolution.
26/112
![Page 30: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/30.jpg)
Zooming Images
If we have a 400×300 image and want a 600×450 image, we need tozoom.In order to zoom, we need interpolation.
1 Nearest-neighbor.2 Bilinear.3 Cubic.
27/112
![Page 31: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/31.jpg)
Image Processing, Analysis, and Computer Vision
There is no clear cut boundary between these.One categorization is low-, mid-, and high-level processing.
28/112
![Page 32: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/32.jpg)
Low-Level Processing
Preprocessing to remove noise.Contrast enhancement.Image sharpening.
29/112
![Page 33: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/33.jpg)
Mid-Level Processing
Segmentation.Edge detection.Object extraction.
30/112
![Page 34: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/34.jpg)
High-Level Processing
Image analysis.Scene interpretation.
31/112
![Page 35: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/35.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
32/112
![Page 36: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/36.jpg)
What Is Matlab?
“The Matlab high-performance language for technical computingintegrates computation, visualization, and programming in an easy-to-useenvironment where problems and solutions are expressed in familiarmathematical notation.”Therefore, Matlab is a powerful and friendly environment for imageprocessing.
33/112
![Page 37: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/37.jpg)
Toolboxes in Matlab
Matlab helps us to do matrix manipulations. This is the basic functionalityof Matlab. There are a large number of toolboxes built on top of this basicfacility.Image Processing Toolbox is one of these toolboxes. However, we try touse the basic functionality and just minimally use the Image ProcessingToolbox. This is because our aim is to be able to write our own imageprocessing programs in Matlab.Octave is a free tool that can do a lot of tasks Matlab is capable of doing.Its toolboxes are not as comprehensive as Matlab, or it is not asuser-friendly as Matlab.
34/112
![Page 38: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/38.jpg)
Entering Matrices
In order to enter a matrix in Matlab or Octave command window, type thefollowing: 2
A = [1 2 3; 4 5 6; 7 8 9]
Matlab responds with the following:
A =1 2 34 5 67 8 9
If we add a semicolon, Matlab will not display the value of the variable A.
A = [1 2 3; 4 5 6; 7 8 9 ] ;
2In the following tutorial, I follow Matlab’s Getting Started Guide. When I say Matlab,I refer to both Matlab and Octave.
35/112
![Page 39: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/39.jpg)
We can sum the columns by using
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum(A)
Matlab responds with the following:
ans =12 15 18
36/112
![Page 40: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/40.jpg)
The apostrophe operator (e.g., A’) performs transposition3.
A = [1 2 3; 4 5 6; 7 8 9 ] ;B = A ’
Matlab responds with the following:
B =1 4 72 5 83 6 9
3Actually, it does the complex conjugate transposition.37/112
![Page 41: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/41.jpg)
ExampleWrite a Matlab program to obtain the row sums of matrix A.
38/112
![Page 42: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/42.jpg)
We can do this by first transposing A and then obtaining the column sums.
A = [1 2 3; 4 5 6; 7 8 9 ] ;B = A ’sum(B) ’
We can also write this as
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum(A ’ ) ’
39/112
![Page 43: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/43.jpg)
We can do this by first transposing A and then obtaining the column sums.
A = [1 2 3; 4 5 6; 7 8 9 ] ;B = A ’sum(B) ’
We can also write this as
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum(A ’ ) ’
39/112
![Page 44: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/44.jpg)
ExampleWrite a Matlab program to obtain the sum of all the elements in A.
40/112
![Page 45: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/45.jpg)
We can do this by first obtaining the column sums, and then summing theelements in the resulting vector.
A = [1 2 3; 4 5 6; 7 8 9 ] ;c = sum(A ) ;sum( c )
We can also write this as
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum(sum(A ) )
41/112
![Page 46: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/46.jpg)
We can do this by first obtaining the column sums, and then summing theelements in the resulting vector.
A = [1 2 3; 4 5 6; 7 8 9 ] ;c = sum(A ) ;sum( c )
We can also write this as
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum(sum(A ) )
41/112
![Page 47: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/47.jpg)
We can read the elements of the main diagonal by using the following:
A = [1 2 3; 4 5 6; 7 8 9 ] ;d iag (A)
42/112
![Page 48: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/48.jpg)
ExampleWrite a Matlab program to obtain the sum of the diagonal of A.
43/112
![Page 49: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/49.jpg)
We can do this by first obtaining the diagonal and then summing.
A = [1 2 3; 4 5 6; 7 8 9 ] ;sum( diag (A ) )
44/112
![Page 50: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/50.jpg)
The element in row i and column j of A is denoted by A(i , j ). For example,A(1,2) is the number in the first row and second column.
ExampleWrite a Matlab program to extract the element in the second row, and thirdcolumn, i.e, element at (2,3).
45/112
![Page 51: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/51.jpg)
A = [1 2 3; 4 5 6; 7 8 9 ] ;A(2 ,3 )
46/112
![Page 52: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/52.jpg)
It is also possible to refer to the elements of a matrix with a singlesubscript, A(k).This is the usual way of referencing row and column vectors. But it canalso apply to a fully two-dimensional matrix, in which case the array isregarded as one long column vector formed from the columns of theoriginal matrix.So, for our matrix, A(6) is another way of referring to the value 8 stored inA(3,2).
47/112
![Page 53: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/53.jpg)
As A is a 3×3 matrix, the following code is illegal:
A = [1 2 3; 4 5 6; 7 8 9 ] ;A(2 ,4 )
Matlab will generate an error message such as “Index exceeds matrixdimensions.”
48/112
![Page 54: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/54.jpg)
However, the following code is legal.
A = [1 2 3; 4 5 6; 7 8 9 ] ;A(2 ,4 ) = 4
Matlab will enlarge A to accommodate a new column. The output is
A =1 2 3 04 5 6 47 8 9 0
.
49/112
![Page 55: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/55.jpg)
The Colon Operator
The colon operator helps us to generates a row vector of numbers. Forexample
1:5
generates
1 2 3 4 5
and
100:−10:50
generates
100 90 80 70 60 50
50/112
![Page 56: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/56.jpg)
Subscript expressions involving colons can refer to portions of a matrix. Forexample,
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]B( 1 : 3 , 2 )
gives
ans =26
10
Using the colon operator, we were able to access elements from 1 to 3 ofcolumn 2.
51/112
![Page 57: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/57.jpg)
ExampleWrite a Matlab program to sum the elements of the second row of matrix B.
52/112
![Page 58: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/58.jpg)
The solution is
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B( 2 , 1 : 4 ) )
The following are alternative methods:
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B( 2 , 1 : end ) )
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B ( 2 , : ) )
The keyword end refers to the last row or column.
53/112
![Page 59: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/59.jpg)
The solution is
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B( 2 , 1 : 4 ) )
The following are alternative methods:
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B( 2 , 1 : end ) )
B = [1 2 3 4; 4 6 7 8; 9 10 11 12]sum(B ( 2 , : ) )
The keyword end refers to the last row or column.
53/112
![Page 60: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/60.jpg)
M-Files
M-files are text files containing the same statements we would type at theMatlab command line. We save the file with the extension .m.We can use Matlab’s editor, Octave’s editor, or even the Notepad to writean m-file.M-files can be run by typing the name of the m-file in the commandwindow, or clicking the run button in the editor.This way, we can save our programs.
54/112
![Page 61: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/61.jpg)
Numbers in Matlab
Some examples of legal numbers are3 -99 0.0001
9.6397238 1.60210e-20 6.02252e231 i -3.14159 j 3ee5 i
Scientific notation uses the letter e to specify a power-of-ten scale factor.Imaginary numbers use either i or j as a suffix.
55/112
![Page 62: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/62.jpg)
Matlab Operators
+ Addition− Subtraction∗ Multiplication/ Division\ Left division (solving linear systems etc.)ˆ Power′ Complex conjugate transpose() Specify evaluation order
56/112
![Page 63: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/63.jpg)
Matlab Functions
There is a large number of standard elementary mathematical functions,including abs, sqrt, exp, and sin.For a list of the elementary mathematical functions, we can typehelp elfun. For a list of more advanced mathematical and matrix functions,we can type help specfun and help elmat4.Some of the functions, like sqrt and sin, are built in. Built-in functions arepart of the Matlab core so they are very efficient, but the computationaldetails are not readily accessible. Other functions, like gamma and sinh,are implemented in m-files.
4Only for Matlab.57/112
![Page 64: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/64.jpg)
Several Special Functions
Several special functions provide values of useful constants.
pi 3.14159265. . .i Imaginary unit
p−1j Same as ieps Floating-point relative precisionrealmin Smallest floating-point numberrealmax Largest floating-point numberInf InfinityNaN Not-a-number
58/112
![Page 65: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/65.jpg)
Expressions
In Matlab, expressions are written similar to any other high levellanguage. Here are the operators:
ExampleSolve x2 +2x +3 = 0 by using the quadratic formula.
59/112
![Page 66: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/66.jpg)
a = 1;b = 2;c = 3;de l t a = b^2 − 4*a* c ;x1 = (−b + s q r t ( de l t a ) ) / ( 2 * a )x2 = (−b − s q r t ( de l t a ) ) / ( 2 * a )
The output is
x1 = −1.0000 + 1.4142 ix2 = −1.0000 − 1.4142 i
60/112
![Page 67: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/67.jpg)
a = 1;b = 2;c = 3;de l t a = b^2 − 4*a* c ;x1 = (−b + s q r t ( de l t a ) ) / ( 2 * a )x2 = (−b − s q r t ( de l t a ) ) / ( 2 * a )
The output is
x1 = −1.0000 + 1.4142 ix2 = −1.0000 − 1.4142 i
60/112
![Page 68: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/68.jpg)
Generating Matrices
There are four function that generate basic matrices:1 zeros: All zeros2 ones: All ones3 rand: Uniformly distributed random elements4 randn: Normally distributed random elements
The following code generates a 2×3 matrix of 4s.
A = 4*ones (2 ,3 )
The output is
A =4 4 44 4 4
61/112
![Page 69: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/69.jpg)
Concatenation
Concatenation is the process of joining small matrices to make bigger ones.For example, the code
A = ones (2 ,3 )B = zeros ( 2 )C = 2*ones (1 ,3 )D = 3*ones (1 ,2 )E = [A B; C D]
produces the following output:
62/112
![Page 70: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/70.jpg)
A =1 1 11 1 1
B =0 00 0
C =2 2 2
D =3 3
E =1 1 1 0 01 1 1 0 02 2 2 3 3
63/112
![Page 71: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/71.jpg)
Deleting Rows and Columns
We can use a pair of empty brackets to delete rows and columns. Forexample, the following code deletes the second row of A:
A = [1 2 3; 4 5 6; 7 8 9 ] ;A ( 2 , : ) = [ ]
ExampleWrite a Matlab program to delete the last column of A.
64/112
![Page 72: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/72.jpg)
Deleting Rows and Columns
We can use a pair of empty brackets to delete rows and columns. Forexample, the following code deletes the second row of A:
A = [1 2 3; 4 5 6; 7 8 9 ] ;A ( 2 , : ) = [ ]
ExampleWrite a Matlab program to delete the last column of A.
64/112
![Page 73: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/73.jpg)
A = [1 2 3; 4 5 6; 7 8 9 ] ;A ( : , end ) = [ ]
65/112
![Page 74: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/74.jpg)
ExampleWrite a Matlab program to delete the first two rows of A.
66/112
![Page 75: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/75.jpg)
A = [1 2 3; 4 5 6; 7 8 9 ] ;A ( 1 : 2 , : ) = [ ]
67/112
![Page 76: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/76.jpg)
Linear Algebra Applications
Matrix multiplication:
A = [1 2 3; 4 5 6; 7 8 9]B = [1 1 ; 2 2 ; 3 3 ]C = A*B
68/112
![Page 77: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/77.jpg)
A =1 2 34 5 67 8 9
B =1 12 23 3
C =14 1432 3250 50
Note that in matrix multiplication, as in C = A×B, the number of columns in Aand the number of rows in B must be equal.
69/112
![Page 78: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/78.jpg)
det(A) Determinantinv(A) Inverserref (A) Reduced row echelon formeig(A) Eigenvaluespoly(A) Coefficients of the characteristic polynomial
70/112
![Page 79: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/79.jpg)
Operations on Arrays
+ Addition− Subtraction.∗ Element-by-element multiplication./ Element-by-element division.\ Element-by-element left division.̂ Element-by-element power.′ Unconjugated array transpose
71/112
![Page 80: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/80.jpg)
ExampleWrite a Matlab program to generate a table of squares and cubes of integersfrom 1 to 10.
72/112
![Page 81: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/81.jpg)
n = [ 1 : 1 0 ] ’t ab l e = [ n n .^2 n . ^ 3 ]
73/112
![Page 82: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/82.jpg)
t ab l e =1 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 729
10 100 1000
74/112
![Page 83: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/83.jpg)
The find Function
The find function determines the indices of array elements that meet a givenlogical condition.
ExampleWrite a Matlab program to replace all the 5s in the following matrix by 0s.
A = [1 2 3 4 5; 5 6 3 9 1; 9 5 3 1 5]
75/112
![Page 84: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/84.jpg)
The find Function
The find function determines the indices of array elements that meet a givenlogical condition.
ExampleWrite a Matlab program to replace all the 5s in the following matrix by 0s.
A = [1 2 3 4 5; 5 6 3 9 1; 9 5 3 1 5]
75/112
![Page 85: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/85.jpg)
A = [1 2 3 4 5; 5 6 3 9 1; 9 5 3 1 5]i nd i ces = f i n d (A == 5)A( i nd i ces ) = 0
Alternatively,
A = [1 2 3 4 5; 5 6 3 9 1; 9 5 3 1 5]A( f i n d (A==5)) = 0
76/112
![Page 86: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/86.jpg)
Plotting
Matlab provides easy-to-use ways of displaying results. In the followingexample, we plot a sinusoid.
t he ta = 0: p i /100 :6* p i ;y = s in ( the ta ) ;p l o t ( theta , y )
77/112
![Page 87: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/87.jpg)
-1
-0.5
0
0.5
1
0 2 4 6 8 10 12 14 16 18
78/112
![Page 88: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/88.jpg)
This example shows how to reuse an existing figure.
t he ta = 0: p i /100 :6* p i ;y1 = s in ( the ta ) ;p l o t ( theta , y1 )hold ony2 = cos ( the ta ) ;p l o t ( theta , y2 , ’color’ , ’r’ )hold o f f
79/112
![Page 89: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/89.jpg)
-1
-0.5
0
0.5
1
0 2 4 6 8 10 12 14 16 18
80/112
![Page 90: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/90.jpg)
subplot is useful to display plots side-by-side.
t he ta = 0: p i /100 :6* p i ;y1 = s in ( the ta ) ;p l o t ( theta , y1 )y2 = cos ( the ta ) ;y3 = s in (2 * the ta ) ;y4 = cos ( the ta ) . * cos ( the ta ) ;subp lo t (2 ,2 ,1 )p l o t ( theta , y1 )subp lo t (2 ,2 ,2 )p l o t ( theta , y2 )subp lo t (2 ,2 ,3 )p l o t ( theta , y3 )subp lo t (2 ,2 ,4 )p l o t ( theta , y4 )
81/112
![Page 91: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/91.jpg)
-1
-0.5
0
0.5
1
0 2 4 6 8 10 12 14 16 18-1
-0.5
0
0.5
1
0 2 4 6 8 10 12 14 16 18
-1
-0.5
0
0.5
1
0 2 4 6 8 10 12 14 16 180
0.2
0.4
0.6
0.8
1
0 2 4 6 8 10 12 14 16 18
82/112
![Page 92: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/92.jpg)
A 3-D plot:
c lose a l l ;w = 25;hw = f l o o r (w / 2 ) ;u = l inspace (−hw, hw,w) ;v = l inspace (−hw, hw,w) ;[ uu , vv ] = meshgrid ( u , v ) ;sigma = 4;g = exp ( −(uu .^2 + vv . ^ 2 ) / ( 2 * sigma ^ 2 ) ) ;g /= sum( g ( : ) ) ;colormap ( j e t ( 1 0 ) ) ;s u r f ( uu , vv , g ) ;
83/112
![Page 93: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/93.jpg)
-10-5
05
10
-10
-5
0
5
100
0.002
0.004
0.006
0.008
0.01
84/112
![Page 94: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/94.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
85/112
![Page 95: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/95.jpg)
Language5
Matlab’s language is a matrix/array language with control flowstatements, functions, data structures, input/output, and object-orientedprogramming features.It allows both “programming in the small” to rapidly create quickprograms, and “programming in the large” to create large and complexapplication programs.
5From Matlab’s getting started guide.86/112
![Page 96: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/96.jpg)
Major functionalities include1 Flow control2 Data structures3 Functions and scripts4 Object oriented programming
87/112
![Page 97: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/97.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
88/112
![Page 98: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/98.jpg)
if , else, and elseif
The following code prints equal if variables A and B are equal.
A = ones ( 2 ) ;B = A;B(1 ,2 ) = 0 ;
i f i sequa l (A,B)d isp ( ’A and B are equal’ )
e lsed isp ( ’A and B are not equal’ )
end
Here we check for the equality of two matrices not scalars. Therefore, wecannot use A==B.
89/112
![Page 99: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/99.jpg)
The following code is meaningful for scalars A and B. For unequal matrices,Unexpected situation will be the output.
A = ones ( 2 ) ;B = A;B(1 ,2 ) = 0 ;
i f A > B’greater’
e l s e i f A < B’less’
e l s e i f A == B’equal’
elsee r r o r ( ’Unexpected situation’ )
end
90/112
![Page 100: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/100.jpg)
Following functions are useful1 isequal2 isempty3 all4 any
91/112
![Page 101: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/101.jpg)
switch
x = inpu t ( " Inpu t a choice (1 or 0 ) : " )swi tch xcase 0
’You input 0.’case 1
’You input 1.’otherwise
e r r o r ( ’Not a valid input.’ )end
Unlike the C language switch statement, the Matlab switch does not fallthrough. If the first case statement is true, the other case statements do notexecute. So, break statements are not required.
92/112
![Page 102: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/102.jpg)
for
f o r i =1:10i ^2
end
ExampleWrite a Matlab program print the multiplicative table form 1 to 12 using a forloops.
93/112
![Page 103: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/103.jpg)
n = 12;m = 12;t ab l e = [ ] ;f o r i =1:n
row = [ ] ;f o r j =1:m
row = [ row i * j ] ;endtab l e = [ t ab l e ; row ] ;
endtab l e
We can generate the table without using for loops. Loops are said to be slowin Matlab.
n = 12;v = 1: n ;I = repmat ( v ’ , 1 , n ) ;J = repmat ( v , n , 1 ) ;t ab l e = I . * J
94/112
![Page 104: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/104.jpg)
n = 12;m = 12;t ab l e = [ ] ;f o r i =1:n
row = [ ] ;f o r j =1:m
row = [ row i * j ] ;endtab l e = [ t ab l e ; row ] ;
endtab l e
We can generate the table without using for loops. Loops are said to be slowin Matlab.
n = 12;v = 1: n ;I = repmat ( v ’ , 1 , n ) ;J = repmat ( v , n , 1 ) ;t ab l e = I . * J
94/112
![Page 105: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/105.jpg)
while
Here is an example of printing odd number from 1 to 20.
i = 0 ;wh i le i < 20
i f mod( i , 2 )i
endi ++;
end
95/112
![Page 106: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/106.jpg)
ExampleUse Nowton-Raphson method to find the square-root of 625. According toNowton-Raphson method, a better approximation of xn , a root of f (x) is givenby
xn+1 = xn − f (xn)
f ′(xn).
96/112
![Page 107: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/107.jpg)
In order to find the square-root of 625, we need to find x if x2 = 625. Therefore,f (x) = x2 −625, and f ′(x) = 2x.
e r r o r = I n f ;t o la rence = 1e−5;i t e r a t i o n s = 100;
i = 0 ;x0 = 10;xn = x0 ;wh i le e r r o r > to la rence & i <= i t e r a t i o n s
i ++;xnplus1 = xn − ( xn^2 − 625 ) / ( 2 * xn ) ;e r r o r = abs ( xnplus1 − xn )xn = xnplus1
endie r r o rxnplus1
Alternatively, roots([1,0,−625]) gives the result. ( f (x) = 1×x2 +0×x + (−625)×1).
97/112
![Page 108: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/108.jpg)
Other constructs:continue passes control to the next iteration of a loop in which it appears,skipping any remaining statements in the body of the loop.break lets you exit early from a loop. In nested loops, break exits from theinnermost loop only.return terminates the current sequence of commands and returns controlto the invoking function or to the keyboard.try-catch-end provides error handling control.
98/112
![Page 109: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/109.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
99/112
![Page 110: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/110.jpg)
M-Files
There are two kinds of M-files:Scripts, which do not accept input arguments or return output arguments.They operate on data in the workspace.Functions, which can accept input arguments and return outputarguments. Internal variables are local to the function.
We have already used many scripts. Now, we study functions.
100/112
![Page 111: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/111.jpg)
Functions
Here is an example of a function that computes the square of a given variable.
% Return the square o f a sca la r or element−by−element square .f u n c t i o n s = l01e20_square ( x )
s = x . ^ 2 ;r e t u r n
We must save this with the file-name “l01e20_square.m”. We can call thisfunction as, for example,
l01e20_square ( 5 )
101/112
![Page 112: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/112.jpg)
Functions
Here is an example of a function that returns the mean and the standarddeviation of a set of numbers in a vector.
% Returns the mean and standard de v i a t i o n o f the elements i n vec to r v .f u n c t i o n [mu, sigma ] = l01e21_mean_and_std ( v )
mu = mean( v ) ;sigma = std ( x ) ;
r e t u r n
102/112
![Page 113: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/113.jpg)
Outline
1 Introduction
2 Digital Images
3 Matlab or Octave Tutorial
4 Programming in MatlabFlow ControlScripts and FunctionsOther Data Structures
103/112
![Page 114: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/114.jpg)
Cells
Cell arrays in Matlab are multidimensional arrays whose elements arecopies of other arrays.A cell array of empty matrices can be created with the cell function. But,more often, cell arrays are created by enclosing a miscellaneouscollection of things in curly braces, {} .The braces are also used with subscripts to access the contents ofvarious cells. For example,
A = [1 2 3; 4 5 6; 7 8 9 ] ;C = {A sum(A) prod ( prod (A ) ) }C
produces a 1-by-3 cell array.
104/112
![Page 115: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/115.jpg)
The element (2,1) of A in the cell array can be accessed as
C{ 1 } ( 2 , 1 )
105/112
![Page 116: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/116.jpg)
Multidimensional Arrays
These are arrays with more than two subscripts. For example,
A = zeros (2 ,3 ,4 )
creates a 2×3×4 array of zeros.
A (1 , 1 , 2) = 3
accesses the element at (1,1,2).
sum(A, 3 )
sums the elements in the the 3rd dimension.
106/112
![Page 117: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/117.jpg)
Images
Color images are loaded as a h ×w ×3 array. Following code loads an imagecalled “fruits.jpg”. Then it zeros-out the red plane and the green plane. As aresult the image becomes blue.
c lose a l lim = imread ( ’fruits.jpg’ ) ;imshow ( im )pauseim ( : , : , 1 ) = 0 ;im ( : , : , 2 ) = 0 ;f i g u r eimshow ( im )
In Octave, I have been successful in using
imshow ( im / 4 )
to display an image.
107/112
![Page 118: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/118.jpg)
Figure 4 shows the two images.
(a) Color (b) Blue only
Figure 4: Color and blue-only versions.
108/112
![Page 119: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/119.jpg)
Figure 5 shows all three colors.
(a) Red only (b) Green only (c) Blue only
Figure 5: Red, green, and blue versions.
109/112
![Page 120: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/120.jpg)
Journals
IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI).International Journal of Computer Vision (IJCV).IEEE Transactions on Image Processing (TIP).IEEE Transactions on System, Man, and Cybernetics, Parts A, B, and C(SMC).
110/112
![Page 121: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/121.jpg)
Conferences
IEEE Computer Society Conference on Computer Vision and PatternRecognition.IEEE International Conference on Computer Vision.European Conference on Computer Vision.British Machine Vision Conference.IEEE Asian Conference on Computer Vision.IEEE International Conference on Robotics and Automation.IEEE International Conference on Image Processing.IEEE International Conference on Pattern Recognition.
111/112
![Page 122: Introduction to Digital Image Processing - acranga/courses/en5204_2013/L01.pdf · What Is Digital Image Processing? Digital image processing helps us enhance images to make them visually](https://reader034.vdocuments.us/reader034/viewer/2022042611/5a711fa97f8b9aac538c8ad6/html5/thumbnails/122.jpg)
Matthew Brown and David Lowe.Recognising panoramas.In Proceedings of the 9th International Conference on Computer Vision, pages 1218–1225, Nice, France,October 2003.
Paul Viola and Michael Jones.Rapid object selection using a boosted cascade of simple features.In Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition,pages 511–518, Hawaii, December 2001.
112/112