SlideShare a Scribd company logo
1 of 19
Image Processing using Matlab
Sumitha Balasuriya
http//www.dcs.gla.ac.uk/~sumitha/
Image Processing using Matlab Sumitha Balasuriya 2
Images in Matlab
• Matlab is optimised for operating on
matrices
• Images are matrices!
• Many useful built-in functions in the
Matlab Image Processing Toolbox
• Very easy to write your own image
processing functions
Image Processing using Matlab Sumitha Balasuriya 3
Loading and displaying images
>> I=imread('mandrill.bmp','bmp'); % load image
>> image(I) % display image
>> whos I
Name Size Bytes Class
I 512x512x3 786432 uint8 array
Grand total is 786432 elements using 786432 bytes
image filename
as a string
image format
as a string
Matrix with
image data
Dimensions of I (red, green
and blue intensity information)
Matlab can only perform
arithmetic operations on
data with class double!
Display the left
half of the
mandrill image
Image Processing using Matlab Sumitha Balasuriya 4
Representation of Images
• Images are just an array of numbers
>> I % ctrl+c to halt output!
• Intensity of each pixel is represented by the pixel element’s
value in the red, green and blue matrices
>> I(1,1,:) % RGB values of element (1,1)
ans(:,:,1) =
135
ans(:,:,2) =
97
ans(:,:,3) =
33
Images where the pixel value in the image
represents the intensity of the pixel are called
intensity images.
Red
Green
Blue
Image Processing using Matlab Sumitha Balasuriya 5
Indexed images
• An indexed image is where the pixel values are indices to elements in a colour map or
colour lookup table.
• The colour map will contain entries corresponding to red, green and blue intensities for
each index in the image.
>> jet(20) % Generate a jet colourmap for 20 indices
ans =
0 0 0.6000
0 0 0.8000
0 0 1.0000
0 0.2000 1.0000
0 0.4000 1.0000
0 0.6000 1.0000
0 0.8000 1.0000
0 1.0000 1.0000
0.2000 1.0000 0.8000
0.4000 1.0000 0.6000
0.6000 1.0000 0.4000
0.8000 1.0000 0.2000
1.0000 1.0000 0
1.0000 0.8000 0
1.0000 0.6000 0
1.0000 0.4000 0
1.0000 0.2000 0
1.0000 0 0
0.8000 0 0
0.6000 0 0
RGB Entry for index value 3
3 4 7 3 6 1 9 8 9 1 2
5 6 14 4 2 5 6 1 4 5
2 8 9 4 2 13 7 8 4 5
5 1 11 5 6 4 1 7 4 4
1 9 5 6 5 5 1 4 4 6 5
5 9 2 1 11 1 3 6 1 9
7 6 8 18 1 8 1 9 1 3 3
9 2 3 7 2 9 8 1 6 6 4
7 8 6 7 4 15 8 2 1 3
7 5 10 8 4 10 4 3 6 4
Values can range
from 0.0 to 1.0
Red, green and blue intensities of
the nearest index in the colourmap
are used to display the image.
Image Processing using Matlab Sumitha Balasuriya 6
>> I2=I(:,:,2); % green values of I
>> image(I2)
>> colorbar % display colourmap
Displaying indexed images
Matlab considers I2 as an indexed image as it doesn’t
contain entries for red, green and blue entries
Index
Associated
color
Colour
Lookup
Table
Image Processing using Matlab Sumitha Balasuriya 7
Displaying indexed images (continued)
• change colourmap
>> colormap(gray)
• scale colourmap
>> imagesc(I2)
Type >>help graph3d to get a list of built-in
colourmaps. Experiment with different
built-in colourmaps.
Define your own colourmap mymap by
creating a matrix (size m x 3 ) with red,
green, blue entries. Display an image using
your colourmap.
Red =1.0,
Green = 1.0,
Blue =1.0,
corresponds to
index 64
Red =1.0,
Green = 1.0,
Blue =1.0,
corresponds to
index 255
Red =0.0,
Green = 0.0,
Blue = 0.0,
corresponds to
index 1
Red =0.0,
Green = 0.0,
Blue = 0.0,
corresponds to
index 0
Image Processing using Matlab Sumitha Balasuriya 8
Useful functions for displaying images
>> axis image % plot fits to data
>> h=axes('position', [0 0 0.5 0.5]);
>> axes(h);
>> imagesc(I2)
Investigate axis and axes
functions using Matlab’s help
Image Processing using Matlab Sumitha Balasuriya 9
Histograms
• Frequency of the intensity values of the image
• Quantise frequency into intervals (called bins)
• (Un-normalised) probability density function of
image intensities
Image Processing using Matlab Sumitha Balasuriya 10
Computing histograms of images in Matlab
>>hist(reshape(double(Lena(:,:,2)),[512*512 1]),50)
Convert image into a 262144 by
1 distribution of values
Histogram
function
Number of bins
Histogram equalisation works by equitably distributing the pixels among the
histogram bins. Histogram equalise the green channel of the Lena image
using Matlab’s histeq function. Compare the equalised image with the
original. Display the histogram of the equalised image. The number of pixels
in each bin should be approximately equal.
Generate the histograms of the green channel of the Lena image using the
following number of bins : 10, 20, 50, 100, 200, 500, 1000
Image Processing using Matlab Sumitha Balasuriya 11
>>surf(double(imresize(Lena(:,:,2),[50 50])))
Visualising the intensity surface
Remember to reduce
size of image!
Use Matlab’s built-in mesh and
shading surface visualisation
functions
Change type to
double precision
Image Processing using Matlab Sumitha Balasuriya 12
Useful functions for manipulating
images
• Convert image to grayscale
>>Igray=rgb2gray(I);
• Resize image
>>Ismall=imresize(I,[100 100], 'bilinear');
• Rotate image
>>I90=imrotate(I,90);
Image Processing using Matlab Sumitha Balasuriya 13
Other useful functions
Convert polar coordinates to
cartesian coordinates
>>pol2cart(rho,theta)
Check if a variable is null
>>isempty(I)
Trigonometric functions
sin, cos, tan
Convert polar coordinates to
cartesian coordinates
>>cart2pol(x,y)
Find indices and elements in a
matrix
>>[X,Y]=find(I>100)
Fast Fourier Transform
Get size of matrix
>>size(I)
Change the dimensions of a
matrix
>>reshape(rand(10,10),[100 1])
Discrete Cosine Transform
Add elements of a Matrix
(columnwise addition in matrices)
>>sum(I)
Exponentials and Logarithms
exp
log
log10
fft2(I)
dct(I)
Image Processing using Matlab Sumitha Balasuriya 14
Convolution
Bit of theory! Convolution of two functions f(x) and g(x)
Discrete image processing 2D form
( ) ( ) ( ) ( ) ( )
h x f x g x f r g x r dr


   

convolution
operator
Image Filter
(mask/kernel)
Support region
of filter where
g(x-r) is nonzero
Output
filtered image
1 1
( , ) ( , ) ( , )
height width
j i
H x y I i j M x i y j
 
  
 
Compute the convolution where
there are valid indices in the kernel
Image Processing using Matlab Sumitha Balasuriya 15
Convolution example
Write your own convolution function
myconv.m to perform a convolution.
It should accept two parameters – the
input matrix (image) and convolution
kernel, and output the filtered matrix.

1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
i
j
Filter (M)
Image (I)
197 199 195 194 189 190 132 90 112 101
194 194 198 201 189 196 150 85 87 97
194 194 198 195 186 191 109 90 90 124
197 187 195 198 185 186 115 78 81 96
194 190 198 193 187 177 88 86 94 69
194 194 190 190 179 177 93 99 95 100
201 194 191 186 186 181 74 110 82 76
196 194 195 191 183 164 77 119 84 88
192 194 199 192 191 174 89 164 103 129
201 190 187 189 178 168 90 82 88 84
0 0 0 0 0 0 0 0 0 0
0 196 196 194 192 170 137 105 97 0
0 195 196 194 192 167 133 98 92 0
0 194 194 193 189 158 124 92 90 0
0 193 193 191 186 154 122 92 89 0
0 194 192 189 184 149 121 91 90 0
0 194 192 188 182 146 122 93 95 0
0 195 193 190 183 147 128 100 106 0
0 194 192 189 181 146 125 100 105 0
0 0 0 0 0 0 0 0 0 0
=
1 1
( , ) ( , ) ( , )
height width
j i
H x y I i j M x i y j
 
  
 
http://www.s2.chalmers.se/undergraduate/courses0203/ess060/PDFdocuments/ForScreen/Notes/Convolution.pdf
Image Processing using Matlab Sumitha Balasuriya 16
Convolution example in 1D
Horizontal slice from Mandrill image
0.01 0.08 0.24 0.34 0.24 0.08 0.01
1D Gaussian filter
 =
Filtered Signal
Image Processing using Matlab Sumitha Balasuriya 17
Common convolution kernels
0.11 0.11 0.11
0.11 0.11 0.11
0.11 0.11 0.11
Arithmetic mean
filter (smoothing)
>>fspecial('average')
-0.17 -0.67 -0.17
-0.67 3.33 -0.67
-0.17 -0.67 -0.17
Laplacian (enhance edges)
>>fspecial('laplacian')
-0.17 -0.67 -0.17
-0.67 4.33 -0.67
-0.17 -0.67 -0.17
Sharpening filter
>>fspecial('unsharp')
0.01 0.08 0.01
0.08 0.62 0.08
0.01 0.08 0.01
Gaussian filter
(smoothing)
>>fspecial('gaussian')
Investigate the listed kernels in Matlab by
performing convolutions on the Mandrill and
Lena images. Study the effects of different
kernel sizes (3x3, 9x9, 25x25) on the output.
1 2 1
0 0 0
-1 -2 -1
1 0 -1
2 0 -2
1 0 -1
Sobel operators (edge detection in x
and y directions)
>>fspecial('sobel')
>>fspecial('sobel')’
The median filter is used for noise reduction. It works by
replacing a pixel value with the median of its neighbourhood
pixel values (vs the mean filter which uses the mean of the
neighbourhood pixel values). Apply Matlab’s median filter
function medfilt2 on the Mandrill and Lena images. Remember
to use different filter sizes (3x3, 9x9, 16x16).
Image Processing using Matlab Sumitha Balasuriya 18
Useful functions for convolution
Perform the convolution of an image using Gaussian
kernels with different sizes and standard deviations
and display the output images.
• Generate useful filters for convolution
>>fspecial('gaussian',[kernel_height kernel_width],sigma)
• 1D convolution
>>conv(signal,filter)
• 2D convolution
>>conv2(double(I(:,:,2)),fspecial('gaussian‘,[kernel_height kernel_width] ,sigma),'valid')
Border padding options
kernel
image
Image Processing using Matlab Sumitha Balasuriya 19
Tutorial 2
1) Type the code in this handout in Matlab and investigate the results.
2) Do the exercises in the notes.
3) Create a grating2d.m function that generates a 2D steerable spatial frequency.
Compute spatial frequencies with an amplitude =1 and the following parameters
frequency = 1/50, 1/25, 1/10, 1/5 cycles per pixel,
phase= 0, pi/5, pi/4, pi/3, pi/2, pi
theta = 0, pi/5, pi/4, pi/3, pi/2, pi
The value for pi is returned by the in-built matlab function pi.
Display your gratings using the in-built gray colourmap. (figure 1)
3) Create a superposition of two or more gratings with different frequencies and
thetas and display the result. You can do this by simply adding the images you
generated with grating2d (figure 2)
frequency = (1/10 and 1/20), (1/20 and 1/30)
theta = (pi/2 and pi/5), (pi/10 and pi/2), (pi/2 and pi)
Make sure you examine combinations of different frequencies and theta values.
(figure 3).
Visualise the intensity surface of the outputs that you have generated. (figure 4)
4) Write a matlab function that segments a greyscale image based on a given
threshold (i.e. display pixels values greater than the threshold value, zero
otherwise). The function should accept two inputs, the image matrix and the
threshold value, and output the thresholded image matrix. (figure 5)
function H=grating2d(f,phi,theta,A)
% function to generate a 2D grating image
% f = frequency
% phi = phase
% theta = angle
% A = amplitude
% H=grating2d(f,phi,theta,A)
% size of grating
height=100;
width=100;
wr=2*pi*f; % angular frequency
wx=wr*cos(theta);
wy=wr*sin(theta);
for y=1:height
for x=1:width
H(x,y)=A*cos(wx*(x)+phi+wy*(y));
end
end
Figure 1 Figure 3
Figure 2 Figure 4
Figure 5

More Related Content

Similar to Image Processing using Matlab . Useful for beginners to learn Image Processing

Lect 03 - first portion
Lect 03 - first portionLect 03 - first portion
Lect 03 - first portionMoe Moe Myint
 
Image processing using matlab
Image processing using matlabImage processing using matlab
Image processing using matlabdedik dafiyanto
 
Lec_3_Image Enhancement_spatial Domain.pdf
Lec_3_Image Enhancement_spatial Domain.pdfLec_3_Image Enhancement_spatial Domain.pdf
Lec_3_Image Enhancement_spatial Domain.pdfnagwaAboElenein
 
Lec_2_Digital Image Fundamentals.pdf
Lec_2_Digital Image Fundamentals.pdfLec_2_Digital Image Fundamentals.pdf
Lec_2_Digital Image Fundamentals.pdfnagwaAboElenein
 
Image processing
Image processingImage processing
Image processingmaheshpene
 
BMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialBMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialpotaters
 
When Discrete Optimization Meets Multimedia Security (and Beyond)
When Discrete Optimization Meets Multimedia Security (and Beyond)When Discrete Optimization Meets Multimedia Security (and Beyond)
When Discrete Optimization Meets Multimedia Security (and Beyond)Shujun Li
 
Basics of Image Processing using MATLAB
Basics of Image Processing using MATLABBasics of Image Processing using MATLAB
Basics of Image Processing using MATLABvkn13
 
Image processing basics using matlab
Image processing basics using matlabImage processing basics using matlab
Image processing basics using matlabAnkur Tyagi
 
Tomato Classification using Computer Vision
Tomato Classification using Computer VisionTomato Classification using Computer Vision
Tomato Classification using Computer VisionRaman Pandey
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlabAman Gupta
 
Anish_Hemmady_assignmnt1_Report
Anish_Hemmady_assignmnt1_ReportAnish_Hemmady_assignmnt1_Report
Anish_Hemmady_assignmnt1_Reportanish h
 
image_enhancement_spatial
 image_enhancement_spatial image_enhancement_spatial
image_enhancement_spatialhoneyjecrc
 
Performance Anaysis for Imaging System
Performance Anaysis for Imaging SystemPerformance Anaysis for Imaging System
Performance Anaysis for Imaging SystemVrushali Lanjewar
 
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLAB
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLABFAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLAB
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLABJournal For Research
 

Similar to Image Processing using Matlab . Useful for beginners to learn Image Processing (20)

Lect 03 - first portion
Lect 03 - first portionLect 03 - first portion
Lect 03 - first portion
 
Image enhancement
Image enhancementImage enhancement
Image enhancement
 
4 image enhancement in spatial domain
4 image enhancement in spatial domain4 image enhancement in spatial domain
4 image enhancement in spatial domain
 
Image processing using matlab
Image processing using matlabImage processing using matlab
Image processing using matlab
 
Lec_3_Image Enhancement_spatial Domain.pdf
Lec_3_Image Enhancement_spatial Domain.pdfLec_3_Image Enhancement_spatial Domain.pdf
Lec_3_Image Enhancement_spatial Domain.pdf
 
Project 1
Project 1Project 1
Project 1
 
Matlab dip
Matlab dipMatlab dip
Matlab dip
 
Lec_2_Digital Image Fundamentals.pdf
Lec_2_Digital Image Fundamentals.pdfLec_2_Digital Image Fundamentals.pdf
Lec_2_Digital Image Fundamentals.pdf
 
Image processing
Image processingImage processing
Image processing
 
BMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorialBMVA summer school MATLAB programming tutorial
BMVA summer school MATLAB programming tutorial
 
When Discrete Optimization Meets Multimedia Security (and Beyond)
When Discrete Optimization Meets Multimedia Security (and Beyond)When Discrete Optimization Meets Multimedia Security (and Beyond)
When Discrete Optimization Meets Multimedia Security (and Beyond)
 
Basics of Image Processing using MATLAB
Basics of Image Processing using MATLABBasics of Image Processing using MATLAB
Basics of Image Processing using MATLAB
 
2. filtering basics
2. filtering basics2. filtering basics
2. filtering basics
 
Image processing basics using matlab
Image processing basics using matlabImage processing basics using matlab
Image processing basics using matlab
 
Tomato Classification using Computer Vision
Tomato Classification using Computer VisionTomato Classification using Computer Vision
Tomato Classification using Computer Vision
 
Image processing with matlab
Image processing with matlabImage processing with matlab
Image processing with matlab
 
Anish_Hemmady_assignmnt1_Report
Anish_Hemmady_assignmnt1_ReportAnish_Hemmady_assignmnt1_Report
Anish_Hemmady_assignmnt1_Report
 
image_enhancement_spatial
 image_enhancement_spatial image_enhancement_spatial
image_enhancement_spatial
 
Performance Anaysis for Imaging System
Performance Anaysis for Imaging SystemPerformance Anaysis for Imaging System
Performance Anaysis for Imaging System
 
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLAB
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLABFAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLAB
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLAB
 

Recently uploaded

Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxolyaivanovalion
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxMohammedJunaid861692
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...amitlee9823
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptxAnupama Kate
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 

Recently uploaded (20)

Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptx
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 

Image Processing using Matlab . Useful for beginners to learn Image Processing

  • 1. Image Processing using Matlab Sumitha Balasuriya http//www.dcs.gla.ac.uk/~sumitha/
  • 2. Image Processing using Matlab Sumitha Balasuriya 2 Images in Matlab • Matlab is optimised for operating on matrices • Images are matrices! • Many useful built-in functions in the Matlab Image Processing Toolbox • Very easy to write your own image processing functions
  • 3. Image Processing using Matlab Sumitha Balasuriya 3 Loading and displaying images >> I=imread('mandrill.bmp','bmp'); % load image >> image(I) % display image >> whos I Name Size Bytes Class I 512x512x3 786432 uint8 array Grand total is 786432 elements using 786432 bytes image filename as a string image format as a string Matrix with image data Dimensions of I (red, green and blue intensity information) Matlab can only perform arithmetic operations on data with class double! Display the left half of the mandrill image
  • 4. Image Processing using Matlab Sumitha Balasuriya 4 Representation of Images • Images are just an array of numbers >> I % ctrl+c to halt output! • Intensity of each pixel is represented by the pixel element’s value in the red, green and blue matrices >> I(1,1,:) % RGB values of element (1,1) ans(:,:,1) = 135 ans(:,:,2) = 97 ans(:,:,3) = 33 Images where the pixel value in the image represents the intensity of the pixel are called intensity images. Red Green Blue
  • 5. Image Processing using Matlab Sumitha Balasuriya 5 Indexed images • An indexed image is where the pixel values are indices to elements in a colour map or colour lookup table. • The colour map will contain entries corresponding to red, green and blue intensities for each index in the image. >> jet(20) % Generate a jet colourmap for 20 indices ans = 0 0 0.6000 0 0 0.8000 0 0 1.0000 0 0.2000 1.0000 0 0.4000 1.0000 0 0.6000 1.0000 0 0.8000 1.0000 0 1.0000 1.0000 0.2000 1.0000 0.8000 0.4000 1.0000 0.6000 0.6000 1.0000 0.4000 0.8000 1.0000 0.2000 1.0000 1.0000 0 1.0000 0.8000 0 1.0000 0.6000 0 1.0000 0.4000 0 1.0000 0.2000 0 1.0000 0 0 0.8000 0 0 0.6000 0 0 RGB Entry for index value 3 3 4 7 3 6 1 9 8 9 1 2 5 6 14 4 2 5 6 1 4 5 2 8 9 4 2 13 7 8 4 5 5 1 11 5 6 4 1 7 4 4 1 9 5 6 5 5 1 4 4 6 5 5 9 2 1 11 1 3 6 1 9 7 6 8 18 1 8 1 9 1 3 3 9 2 3 7 2 9 8 1 6 6 4 7 8 6 7 4 15 8 2 1 3 7 5 10 8 4 10 4 3 6 4 Values can range from 0.0 to 1.0 Red, green and blue intensities of the nearest index in the colourmap are used to display the image.
  • 6. Image Processing using Matlab Sumitha Balasuriya 6 >> I2=I(:,:,2); % green values of I >> image(I2) >> colorbar % display colourmap Displaying indexed images Matlab considers I2 as an indexed image as it doesn’t contain entries for red, green and blue entries Index Associated color Colour Lookup Table
  • 7. Image Processing using Matlab Sumitha Balasuriya 7 Displaying indexed images (continued) • change colourmap >> colormap(gray) • scale colourmap >> imagesc(I2) Type >>help graph3d to get a list of built-in colourmaps. Experiment with different built-in colourmaps. Define your own colourmap mymap by creating a matrix (size m x 3 ) with red, green, blue entries. Display an image using your colourmap. Red =1.0, Green = 1.0, Blue =1.0, corresponds to index 64 Red =1.0, Green = 1.0, Blue =1.0, corresponds to index 255 Red =0.0, Green = 0.0, Blue = 0.0, corresponds to index 1 Red =0.0, Green = 0.0, Blue = 0.0, corresponds to index 0
  • 8. Image Processing using Matlab Sumitha Balasuriya 8 Useful functions for displaying images >> axis image % plot fits to data >> h=axes('position', [0 0 0.5 0.5]); >> axes(h); >> imagesc(I2) Investigate axis and axes functions using Matlab’s help
  • 9. Image Processing using Matlab Sumitha Balasuriya 9 Histograms • Frequency of the intensity values of the image • Quantise frequency into intervals (called bins) • (Un-normalised) probability density function of image intensities
  • 10. Image Processing using Matlab Sumitha Balasuriya 10 Computing histograms of images in Matlab >>hist(reshape(double(Lena(:,:,2)),[512*512 1]),50) Convert image into a 262144 by 1 distribution of values Histogram function Number of bins Histogram equalisation works by equitably distributing the pixels among the histogram bins. Histogram equalise the green channel of the Lena image using Matlab’s histeq function. Compare the equalised image with the original. Display the histogram of the equalised image. The number of pixels in each bin should be approximately equal. Generate the histograms of the green channel of the Lena image using the following number of bins : 10, 20, 50, 100, 200, 500, 1000
  • 11. Image Processing using Matlab Sumitha Balasuriya 11 >>surf(double(imresize(Lena(:,:,2),[50 50]))) Visualising the intensity surface Remember to reduce size of image! Use Matlab’s built-in mesh and shading surface visualisation functions Change type to double precision
  • 12. Image Processing using Matlab Sumitha Balasuriya 12 Useful functions for manipulating images • Convert image to grayscale >>Igray=rgb2gray(I); • Resize image >>Ismall=imresize(I,[100 100], 'bilinear'); • Rotate image >>I90=imrotate(I,90);
  • 13. Image Processing using Matlab Sumitha Balasuriya 13 Other useful functions Convert polar coordinates to cartesian coordinates >>pol2cart(rho,theta) Check if a variable is null >>isempty(I) Trigonometric functions sin, cos, tan Convert polar coordinates to cartesian coordinates >>cart2pol(x,y) Find indices and elements in a matrix >>[X,Y]=find(I>100) Fast Fourier Transform Get size of matrix >>size(I) Change the dimensions of a matrix >>reshape(rand(10,10),[100 1]) Discrete Cosine Transform Add elements of a Matrix (columnwise addition in matrices) >>sum(I) Exponentials and Logarithms exp log log10 fft2(I) dct(I)
  • 14. Image Processing using Matlab Sumitha Balasuriya 14 Convolution Bit of theory! Convolution of two functions f(x) and g(x) Discrete image processing 2D form ( ) ( ) ( ) ( ) ( ) h x f x g x f r g x r dr        convolution operator Image Filter (mask/kernel) Support region of filter where g(x-r) is nonzero Output filtered image 1 1 ( , ) ( , ) ( , ) height width j i H x y I i j M x i y j        Compute the convolution where there are valid indices in the kernel
  • 15. Image Processing using Matlab Sumitha Balasuriya 15 Convolution example Write your own convolution function myconv.m to perform a convolution. It should accept two parameters – the input matrix (image) and convolution kernel, and output the filtered matrix.  1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 i j Filter (M) Image (I) 197 199 195 194 189 190 132 90 112 101 194 194 198 201 189 196 150 85 87 97 194 194 198 195 186 191 109 90 90 124 197 187 195 198 185 186 115 78 81 96 194 190 198 193 187 177 88 86 94 69 194 194 190 190 179 177 93 99 95 100 201 194 191 186 186 181 74 110 82 76 196 194 195 191 183 164 77 119 84 88 192 194 199 192 191 174 89 164 103 129 201 190 187 189 178 168 90 82 88 84 0 0 0 0 0 0 0 0 0 0 0 196 196 194 192 170 137 105 97 0 0 195 196 194 192 167 133 98 92 0 0 194 194 193 189 158 124 92 90 0 0 193 193 191 186 154 122 92 89 0 0 194 192 189 184 149 121 91 90 0 0 194 192 188 182 146 122 93 95 0 0 195 193 190 183 147 128 100 106 0 0 194 192 189 181 146 125 100 105 0 0 0 0 0 0 0 0 0 0 0 = 1 1 ( , ) ( , ) ( , ) height width j i H x y I i j M x i y j        http://www.s2.chalmers.se/undergraduate/courses0203/ess060/PDFdocuments/ForScreen/Notes/Convolution.pdf
  • 16. Image Processing using Matlab Sumitha Balasuriya 16 Convolution example in 1D Horizontal slice from Mandrill image 0.01 0.08 0.24 0.34 0.24 0.08 0.01 1D Gaussian filter  = Filtered Signal
  • 17. Image Processing using Matlab Sumitha Balasuriya 17 Common convolution kernels 0.11 0.11 0.11 0.11 0.11 0.11 0.11 0.11 0.11 Arithmetic mean filter (smoothing) >>fspecial('average') -0.17 -0.67 -0.17 -0.67 3.33 -0.67 -0.17 -0.67 -0.17 Laplacian (enhance edges) >>fspecial('laplacian') -0.17 -0.67 -0.17 -0.67 4.33 -0.67 -0.17 -0.67 -0.17 Sharpening filter >>fspecial('unsharp') 0.01 0.08 0.01 0.08 0.62 0.08 0.01 0.08 0.01 Gaussian filter (smoothing) >>fspecial('gaussian') Investigate the listed kernels in Matlab by performing convolutions on the Mandrill and Lena images. Study the effects of different kernel sizes (3x3, 9x9, 25x25) on the output. 1 2 1 0 0 0 -1 -2 -1 1 0 -1 2 0 -2 1 0 -1 Sobel operators (edge detection in x and y directions) >>fspecial('sobel') >>fspecial('sobel')’ The median filter is used for noise reduction. It works by replacing a pixel value with the median of its neighbourhood pixel values (vs the mean filter which uses the mean of the neighbourhood pixel values). Apply Matlab’s median filter function medfilt2 on the Mandrill and Lena images. Remember to use different filter sizes (3x3, 9x9, 16x16).
  • 18. Image Processing using Matlab Sumitha Balasuriya 18 Useful functions for convolution Perform the convolution of an image using Gaussian kernels with different sizes and standard deviations and display the output images. • Generate useful filters for convolution >>fspecial('gaussian',[kernel_height kernel_width],sigma) • 1D convolution >>conv(signal,filter) • 2D convolution >>conv2(double(I(:,:,2)),fspecial('gaussian‘,[kernel_height kernel_width] ,sigma),'valid') Border padding options kernel image
  • 19. Image Processing using Matlab Sumitha Balasuriya 19 Tutorial 2 1) Type the code in this handout in Matlab and investigate the results. 2) Do the exercises in the notes. 3) Create a grating2d.m function that generates a 2D steerable spatial frequency. Compute spatial frequencies with an amplitude =1 and the following parameters frequency = 1/50, 1/25, 1/10, 1/5 cycles per pixel, phase= 0, pi/5, pi/4, pi/3, pi/2, pi theta = 0, pi/5, pi/4, pi/3, pi/2, pi The value for pi is returned by the in-built matlab function pi. Display your gratings using the in-built gray colourmap. (figure 1) 3) Create a superposition of two or more gratings with different frequencies and thetas and display the result. You can do this by simply adding the images you generated with grating2d (figure 2) frequency = (1/10 and 1/20), (1/20 and 1/30) theta = (pi/2 and pi/5), (pi/10 and pi/2), (pi/2 and pi) Make sure you examine combinations of different frequencies and theta values. (figure 3). Visualise the intensity surface of the outputs that you have generated. (figure 4) 4) Write a matlab function that segments a greyscale image based on a given threshold (i.e. display pixels values greater than the threshold value, zero otherwise). The function should accept two inputs, the image matrix and the threshold value, and output the thresholded image matrix. (figure 5) function H=grating2d(f,phi,theta,A) % function to generate a 2D grating image % f = frequency % phi = phase % theta = angle % A = amplitude % H=grating2d(f,phi,theta,A) % size of grating height=100; width=100; wr=2*pi*f; % angular frequency wx=wr*cos(theta); wy=wr*sin(theta); for y=1:height for x=1:width H(x,y)=A*cos(wx*(x)+phi+wy*(y)); end end Figure 1 Figure 3 Figure 2 Figure 4 Figure 5