Lecture 1: Introduction to
Image Processing and MATLAB
Computer Vision In MATLAB
By. Assist. Prof. Ielaf O.Abdul Majjed
2022-2023
Image Processing
Refer to the operation that be applied on the
information of the digital image such as (analysis ,
transformation ,enhancement )
Image formation
There are numerous ways to acquire images, but the objective is how to
generate digital image from sensed data (physical image ).since the output of
the most sensors is continuous. Converting continuous sensed data into digital
form involves two processes , sampling and quantization
Sampling
f
t
A sampled function
Sampling is the process of converting a signal (for example, a
function of continuous time and/or space) into a numeric
sequence (a function of discrete time and/or space).
∆𝑥
Hint: take enough samples so that the “continuous” image can be
reconstructed from its samples.
What is the effect of Δx?
 Large Δx (i.e., few samples)
results to overlapping
• Smaller Δx (i.e., more samples)
alleviates aliasing!
How to choose Δx
 The sampling period (Δx) Choose according to Nyquist criterion
(should be smaller than or at the most equal to half of the period
of the finest detail present within an image).
Nyquist Theory where W is the max frequency of f(x)
Image Sampling
 To convert the image to digital we have to sample the function in both
coordinates (x,y)
Two dimensional sampling array
∆𝑦 where W is the max frequency
Quantization
f
t
3
2
1
0
Quantization
∆𝑥
Quantization Conversion of the sampled analogue pixel intensities to
discrete valued integer numbers is the process of quantization. Quantization
involves assigning a single value to each sample in such a way that the image
reconstructed from the quantized sample values
Image Sampling & quantization
0
255
Image Sampling & quantization
Representing Digital Images
The result of Sampling and Quantization is a matrix of integer
numbers.
Representing Digital Images

















)
1
,
1
(
...
...
)
1
,
0
(
...
)
0
,
1
(
...
...
...
)
1
,
1
(
...
...
)
1
,
0
(
)
0
,
0
(
)
,
(
N
M
f
N
f
M
f
f
f
f
y
x
f
f(x,y) where x,y denote spatial coordinates and the value of f
at any point (x,y) is the intensity(gray-level) of image at that
point
Here we have an image f(x,y)
Where x = 1,2 , ………….., M and M= number of rows
Where y = 1,2 , ………….., N and N= number of column
How are images represented
in the computer?
The image can now be represented as a matrix of integer values
What is a Digital Image
 Digital image is composed of a finite number of elements, each of
which has a particular location and value. These elements are referred
to as picture elements, image elements, and pixels.
 Pixel is the term most widely used to denote the elements of a digital
image
Pixel
f(x,y)=i(x,y)r(x,y)
where
1) i(x,y) the amount of illumination
incident to the scene
2) r(x,y) the reflectance from the
object
DIGITAL IMAGE
1
)
,
(
0
)
,
(
0





y
x
r
y
x
i
Digital Images(Storage requirements)
 0 ≤ f(x,y) ≤ L-1 for all (x,y)
 Usually L= 2k
 Dynamic Range : [0, L-1]
The number of bits required to store an image
b = M x N x k where k is the number of bits/pixel
N = number of rows
M= number of column
k = number of bits/pixel
• An image is represented by a rectangular array of integers.
MATLAB for Image Processing
The MATLAB Environment
• MATLAB window
components:
Workspace
> Displays all the defined
variables
Command Window
> To execute commands
in the MATLAB
environment
Command History
> Displays record of the
commands used
File Editor Window
> Define your functions
MATLAB Help
• MATLAB Help is an
extremely powerful
assistance to learning
MATLAB
• Help not only contains the
theoretical background,
but also shows demos for
implementation
• MATLAB Help can be
opened by using the
HELP pull-down menu
MATLAB Help (cont.)
• Any command description
can be found by typing
the command in the
search field
• As shown above, the
command to take square
root (sqrt) is searched
• We can also utilize
MATLAB Help from the
command window as
shown
More about the Workspace
• who, whos – current variables in the
workspace
• save – save workspace variables to *.mat
file
• load – load variables from *.mat file
• clear – clear workspace variables
Matrices in MATLAB
• Matrix is the main MATLAB data type
• How to build a matrix?
– A=[1 2 3; 4 5 6; 7 8 9];
– Creates matrix A of size 3 x 3
• Special matrices:
– zeros(n,m), ones(n,m), eye(n,m),
rand(),…. etc
• Numbers are always double (64 bits)
unless you specify a different data
type
Basic Operations on Matrices
• All operators in MATLAB are defined on
matrices: +, -, *, /, ^, sqrt,
sin, cos, etc.
• Element-wise operators defined with a
preceding dot: .*, ./, .^
• size(A) – size vector
• sum(A) – columns sums vector
• sum(sum(A)) – sum of all the elements
Variable Name in Matlab
• Variable naming rules
- must be unique in the first 63 characters
- must begin with a letter
- may not contain blank spaces or other types of punctuation
- may contain any combination of letters, digits, and
underscores
- are case-sensitive
- should not use Matlab keyword
• Pre-defined variable names
• pi
Logical Operators
• ==, <, >, (not equal) ~=, (not) ~
• find(‘condition’) – Returns indexes
of A’s elements that satisfy the condition
Logical Operators (cont.)
• Example:
>>A=[7 3 5; 6 2 1], Idx=find(A<4)
A=
7 3 5
6 2 1
Idx=
3
4
6
Flow Control
• MATLAB has five flow control constructs:
– if statement
– switch statement
– for loop
– while loop
– break statement
if
• IF statement condition
– The general form of the IF statement is
IF expression
statements
ELSEIF expression
statements
ELSE
statements
END
switch
• SWITCH – Switch among several cases based
on expression
• The general form of SWITCH statement is:
SWITCH switch_expr
CASE case_expr,
statement, …, statement
CASE {case_expr1, case_expr2, case_expr3, …}
statement, …, statement
…
OTHERWISE
statement, …, statement
END
switch (cont.)
• Note:
– Only the statements between the matching
CASE and the next CASE, OTHERWISE, or END
are executed
– Unlike C, the SWITCH statement does not fall
through (so BREAKs are unnecessary)
for
• FOR repeats statements a specific
number of times
• The general form of a FOR statement is:
FOR variable=expr
statements
END
while
• WHILE repeats statements an indefinite
number of times
• The general form of a WHILE statement is:
WHILE expression
statements
END
Visualization and Graphics
• plot(x,y),plot(x,sin(x)) – plot 1D function
• figure, figure(k) – open a new figure
• hold on, hold off – refreshing
• axis([xmin xmax ymin ymax]) – change axes
• title(‘figure titile’) – add title to figure
• mesh(x_ax,y_ax,z_mat) – view surface
• contour(z_mat) – view z as topo map
• subplot(3,1,2) – locate several plots in figure
Images in MATLAB
• MATLAB can import/export
several image formats:
– BMP (Microsoft Windows Bitmap)
– GIF (Graphics Interchange Files)
– HDF (Hierarchical Data Format)
– JPEG (Joint Photographic
Experts Group)
– PCX (Paintbrush)
– PNG (Portable Network
Graphics)
– TIFF (Tagged Image File Format)
– XWD (X Window Dump)
– raw-data and other types of
image data
• Typically switch images to double
to perform any processing and
convert back to unsigned integer
• Data types in MATLAB
– Double (64-bit double-precision
floating point)
– Single (32-bit single-precision
floating point)
– Int32 (32-bit signed integer)
– Int16 (16-bit signed integer)
– Int8 (8-bit signed integer)
– Uint32 (32-bit unsigned integer)
– Uint16 (16-bit unsigned integer)
– Uint8 (8-bit unsigned integer)
Images in MATLAB
• Binary images : {0,1}
• Intensity images : [0,1] or uint8, double etc.
• RGB images : m × n × 3
• Multidimensional images: m × n × p (p is the number of layers)
Image Import and Export
• Read and write images in Matlab
img = imread('apple.jpg');
dim = size(img);
figure;
imshow(img);
imwrite(img, 'output.bmp', 'bmp');
• Alternatives to imshow
imagesc(I)
imtool(I)
image(I)
Images and Matrices
Column 1 to 256
Row
1
to
256
o
[0, 0]
o
[256, 256]
How to build a matrix (or image)?
Intensity Image:
row = 256;
col = 256;
img = zeros(row, col);
img(100:105, :) = 0.5;
img(:, 100:105) = 1;
figure;
imshow(img);
Images and Matrices
Binary Image:
row = 256;
col = 256;
img = rand(row, col);
img = round(img);
figure;
imshow(img);
size(im)
Image Display
• image - create and display image object
• imagesc - scale and display as image
• imshow - display image
Image Import and ExportRead and write images in Matlab
img= imread('football.jpg');
dim =size(img)
figure
imshow(img);
imwrite(img, 'output', 'bmp')
subplot(3,1,1), imagesc(img);
subplot (3,1,2), imtool(img)
subplot (3,1,3),image(img)

Lecture1_computer vision-2023.pdf

  • 1.
    Lecture 1: Introductionto Image Processing and MATLAB Computer Vision In MATLAB By. Assist. Prof. Ielaf O.Abdul Majjed 2022-2023
  • 2.
    Image Processing Refer tothe operation that be applied on the information of the digital image such as (analysis , transformation ,enhancement )
  • 3.
    Image formation There arenumerous ways to acquire images, but the objective is how to generate digital image from sensed data (physical image ).since the output of the most sensors is continuous. Converting continuous sensed data into digital form involves two processes , sampling and quantization
  • 4.
    Sampling f t A sampled function Samplingis the process of converting a signal (for example, a function of continuous time and/or space) into a numeric sequence (a function of discrete time and/or space). ∆𝑥 Hint: take enough samples so that the “continuous” image can be reconstructed from its samples.
  • 5.
    What is theeffect of Δx?  Large Δx (i.e., few samples) results to overlapping • Smaller Δx (i.e., more samples) alleviates aliasing! How to choose Δx  The sampling period (Δx) Choose according to Nyquist criterion (should be smaller than or at the most equal to half of the period of the finest detail present within an image). Nyquist Theory where W is the max frequency of f(x)
  • 6.
    Image Sampling  Toconvert the image to digital we have to sample the function in both coordinates (x,y) Two dimensional sampling array ∆𝑦 where W is the max frequency
  • 7.
    Quantization f t 3 2 1 0 Quantization ∆𝑥 Quantization Conversion ofthe sampled analogue pixel intensities to discrete valued integer numbers is the process of quantization. Quantization involves assigning a single value to each sample in such a way that the image reconstructed from the quantized sample values
  • 8.
    Image Sampling &quantization 0 255
  • 9.
    Image Sampling &quantization
  • 10.
    Representing Digital Images Theresult of Sampling and Quantization is a matrix of integer numbers.
  • 11.
    Representing Digital Images                  ) 1 , 1 ( ... ... ) 1 , 0 ( ... ) 0 , 1 ( ... ... ... ) 1 , 1 ( ... ... ) 1 , 0 ( ) 0 , 0 ( ) , ( N M f N f M f f f f y x f f(x,y)where x,y denote spatial coordinates and the value of f at any point (x,y) is the intensity(gray-level) of image at that point Here we have an image f(x,y) Where x = 1,2 , ………….., M and M= number of rows Where y = 1,2 , ………….., N and N= number of column
  • 12.
    How are imagesrepresented in the computer? The image can now be represented as a matrix of integer values
  • 13.
    What is aDigital Image  Digital image is composed of a finite number of elements, each of which has a particular location and value. These elements are referred to as picture elements, image elements, and pixels.  Pixel is the term most widely used to denote the elements of a digital image Pixel
  • 14.
    f(x,y)=i(x,y)r(x,y) where 1) i(x,y) theamount of illumination incident to the scene 2) r(x,y) the reflectance from the object DIGITAL IMAGE 1 ) , ( 0 ) , ( 0      y x r y x i
  • 15.
    Digital Images(Storage requirements) 0 ≤ f(x,y) ≤ L-1 for all (x,y)  Usually L= 2k  Dynamic Range : [0, L-1] The number of bits required to store an image b = M x N x k where k is the number of bits/pixel N = number of rows M= number of column k = number of bits/pixel • An image is represented by a rectangular array of integers.
  • 16.
    MATLAB for ImageProcessing
  • 17.
    The MATLAB Environment •MATLAB window components: Workspace > Displays all the defined variables Command Window > To execute commands in the MATLAB environment Command History > Displays record of the commands used File Editor Window > Define your functions
  • 18.
    MATLAB Help • MATLABHelp is an extremely powerful assistance to learning MATLAB • Help not only contains the theoretical background, but also shows demos for implementation • MATLAB Help can be opened by using the HELP pull-down menu
  • 19.
    MATLAB Help (cont.) •Any command description can be found by typing the command in the search field • As shown above, the command to take square root (sqrt) is searched • We can also utilize MATLAB Help from the command window as shown
  • 20.
    More about theWorkspace • who, whos – current variables in the workspace • save – save workspace variables to *.mat file • load – load variables from *.mat file • clear – clear workspace variables
  • 21.
    Matrices in MATLAB •Matrix is the main MATLAB data type • How to build a matrix? – A=[1 2 3; 4 5 6; 7 8 9]; – Creates matrix A of size 3 x 3 • Special matrices: – zeros(n,m), ones(n,m), eye(n,m), rand(),…. etc • Numbers are always double (64 bits) unless you specify a different data type
  • 22.
    Basic Operations onMatrices • All operators in MATLAB are defined on matrices: +, -, *, /, ^, sqrt, sin, cos, etc. • Element-wise operators defined with a preceding dot: .*, ./, .^ • size(A) – size vector • sum(A) – columns sums vector • sum(sum(A)) – sum of all the elements
  • 23.
    Variable Name inMatlab • Variable naming rules - must be unique in the first 63 characters - must begin with a letter - may not contain blank spaces or other types of punctuation - may contain any combination of letters, digits, and underscores - are case-sensitive - should not use Matlab keyword • Pre-defined variable names • pi
  • 24.
    Logical Operators • ==,<, >, (not equal) ~=, (not) ~ • find(‘condition’) – Returns indexes of A’s elements that satisfy the condition
  • 25.
    Logical Operators (cont.) •Example: >>A=[7 3 5; 6 2 1], Idx=find(A<4) A= 7 3 5 6 2 1 Idx= 3 4 6
  • 26.
    Flow Control • MATLABhas five flow control constructs: – if statement – switch statement – for loop – while loop – break statement
  • 27.
    if • IF statementcondition – The general form of the IF statement is IF expression statements ELSEIF expression statements ELSE statements END
  • 28.
    switch • SWITCH –Switch among several cases based on expression • The general form of SWITCH statement is: SWITCH switch_expr CASE case_expr, statement, …, statement CASE {case_expr1, case_expr2, case_expr3, …} statement, …, statement … OTHERWISE statement, …, statement END
  • 29.
    switch (cont.) • Note: –Only the statements between the matching CASE and the next CASE, OTHERWISE, or END are executed – Unlike C, the SWITCH statement does not fall through (so BREAKs are unnecessary)
  • 30.
    for • FOR repeatsstatements a specific number of times • The general form of a FOR statement is: FOR variable=expr statements END
  • 31.
    while • WHILE repeatsstatements an indefinite number of times • The general form of a WHILE statement is: WHILE expression statements END
  • 32.
    Visualization and Graphics •plot(x,y),plot(x,sin(x)) – plot 1D function • figure, figure(k) – open a new figure • hold on, hold off – refreshing • axis([xmin xmax ymin ymax]) – change axes • title(‘figure titile’) – add title to figure • mesh(x_ax,y_ax,z_mat) – view surface • contour(z_mat) – view z as topo map • subplot(3,1,2) – locate several plots in figure
  • 33.
    Images in MATLAB •MATLAB can import/export several image formats: – BMP (Microsoft Windows Bitmap) – GIF (Graphics Interchange Files) – HDF (Hierarchical Data Format) – JPEG (Joint Photographic Experts Group) – PCX (Paintbrush) – PNG (Portable Network Graphics) – TIFF (Tagged Image File Format) – XWD (X Window Dump) – raw-data and other types of image data • Typically switch images to double to perform any processing and convert back to unsigned integer • Data types in MATLAB – Double (64-bit double-precision floating point) – Single (32-bit single-precision floating point) – Int32 (32-bit signed integer) – Int16 (16-bit signed integer) – Int8 (8-bit signed integer) – Uint32 (32-bit unsigned integer) – Uint16 (16-bit unsigned integer) – Uint8 (8-bit unsigned integer)
  • 34.
    Images in MATLAB •Binary images : {0,1} • Intensity images : [0,1] or uint8, double etc. • RGB images : m × n × 3 • Multidimensional images: m × n × p (p is the number of layers)
  • 35.
    Image Import andExport • Read and write images in Matlab img = imread('apple.jpg'); dim = size(img); figure; imshow(img); imwrite(img, 'output.bmp', 'bmp'); • Alternatives to imshow imagesc(I) imtool(I) image(I)
  • 36.
    Images and Matrices Column1 to 256 Row 1 to 256 o [0, 0] o [256, 256] How to build a matrix (or image)? Intensity Image: row = 256; col = 256; img = zeros(row, col); img(100:105, :) = 0.5; img(:, 100:105) = 1; figure; imshow(img);
  • 37.
    Images and Matrices BinaryImage: row = 256; col = 256; img = rand(row, col); img = round(img); figure; imshow(img); size(im)
  • 38.
    Image Display • image- create and display image object • imagesc - scale and display as image • imshow - display image
  • 39.
    Image Import andExportRead and write images in Matlab img= imread('football.jpg'); dim =size(img) figure imshow(img); imwrite(img, 'output', 'bmp') subplot(3,1,1), imagesc(img); subplot (3,1,2), imtool(img) subplot (3,1,3),image(img)