SlideShare a Scribd company logo
1 of 37
CIS 601 Fall 2003
Introduction to MATLAB
Longin Jan Latecki
Based on the lectures of Rolf Lakaemper and David Young
MATLAB
This introduction will give
• a brief overview, it’s not a MATLAB
tutorial !
• Some basic ideas
• Main advantages and drawbacks
compared to other languages
MATLAB
What Is MATLAB?
MATLAB (MATrix LABoratory)
• high-performance language for technical computing
• computation, visualization, and programming in an easy-to-
use environment
Typical uses include:
• Math and computation
• Algorithm development
• Modelling, simulation, and prototyping
• Data analysis, exploration, and visualization
• Scientific and engineering graphics
• Application development, including Graphical User Interface
building
Why MATLAB
A good choice for vision program development
because:
• Easy to do very rapid prototyping
• Quick to learn, and good documentation
• A good library of image processing functions
• Excellent display capabilities
• Widely used for teaching and research in
universities and industry
• Another language to impress your boss with !
Why not MATLAB
Has some drawbacks:
• Slow for some kinds of processes
• Not geared to the web
• Not designed for large-scale system
development
MATLAB Components
MATLAB consists of:
• The MATLAB language
• a high-level matrix/array language with control flow statements, functions,
data structures, input/output, and object-oriented programming features.
• The MATLAB working environment
• the set of tools and facilities that you work with as the MATLAB user or
programmer, including tools for developing, managing, debugging, and
profiling
• Handle Graphics
• the MATLAB graphics system. It includes high-level commands for two-
dimensional and three-dimensional data visualization, image processing,
animation, and presentation graphics.
• …(cont’d)
MATLAB Components
…
• The MATLAB function library.
• a vast collection of computational algorithms ranging from elementary
functions like sum, sine, cosine, and complex arithmetic, to more
sophisticated functions like matrix inverse, matrix eigenvalues, Bessel
functions, and fast Fourier transforms as well as special image processing
related functions
• The MATLAB Application Program Interface (API)
• a library that allows you to write C and Fortran programs that interact with
MATLAB. It include facilities for calling routines from MATLAB (dynamic
linking), calling MATLAB as a computational engine, and for reading and
writing MAT-files.
MATLAB
Some facts for a first impression
• Everything in MATLAB is a matrix !
• MATLAB is an interpreted language, no
compilation needed (but possible)
• MATLAB does not need any variable
declarations, no dimension statements, has no
packaging, no storage allocation, no pointers
• Programs can be run step by step, with full
access to all variables, functions etc.
What does Matlab code look like?
A simple example:
a = 1
while length(a) < 10
a = [0 a] + [a 0]
end which prints out Pascal’s triangle:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
(with “a=” before each line).
What does Matlab code look like?
Another simple example:
t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
What does Matlab code look like?
Another simple example:
t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
Remember:
EVERYTHING IN MATLAB
IS A MATRIX !
creates 1 x 200 Matrix
Argument and result: 1 x 200 Matrix
Matrices
Matrices
•Rows and columns are always numbered starting at 1
•Matlab matrices are of various types to hold different
kinds of data (usually floats or integers)
• A single number is really a 1 x 1 matrix in Matlab!
• Matlab variables are not given a type, and do not need
to be declared
• Any matrix can be assigned to any variable
Matrices
Building matrices with [ ]:
A = [2 7 4]
A = [2; 7; 4]
A = [2 7 4; 3 8 9]
B = [ A A ]
2 7 4
2
7
4
2 7 4
3 8 9
?
Matrices
Building matrices with [ ]:
A = [2 7 4]
A = [2; 7; 4]
A = [2 7 4; 3 8 9]
B = [ A A ]
2 7 4
2
7
4
2 7 4
3 8 9
2 7 4
3 8 9
2 7 4
3 8 9
Matrices
Matrices
Some operators must be handled with care:
A = [1 2 ; 4 5]
B = A * A prints 9 12
24 33
B = A .* A prints 1 4
16 25
Element by element multiplication
Submatrices
A matrix can be indexed using another matrix, to
produce a subset of its elements:
a = [100 200 300 400 500 600 700] b = [3 5 6]
c = a(b):
300 500 600
Submatrices
To get a subsection of a matrix, we can produce the
index matrix with the colon operator:
a(2:5)
prints
ans = 200 300 400 500
•This works in 2-D as well, e.g. c(2:3, 1:2) produces a
2 x 2 submatrix.
•The rows and columns of the submatrix are
renumbered.
loops
‘for’ loops in MATLAB iterate over matrix elements:
b = 0
for i = [ 3 9 17]
b = b + i;
end
Result: 29
Note:
The MATLAB way to write that program would have been:
b = sum([ 3 9 17]);
Avoid loops if possible !
loops
The typical ‘for’ loop looks like:
for i = 1:6
…
end
Which is the same as:
for i = [1 2 3 4 5 6]
…
end
loops
Once again:
AVOID LOOPS
Images
So why MATLAB and IMAGE
PROCESSING ?
Images
Images can be treated as
matrices !
Images
Loading an image:
a = imread(‘picture.jpg’);
imshow(a);
Images
Image (=matrix) size:
size(a): 384 512 3
R G B
384
512
Images
Color image:
3D Matrix of RGB planes
Images
Show RED plane:
a(:,:,2:3) = 0;
imshow(a);
Images
Show GREEN plane:
a(:,:,[1 3]) = 0;
imshow(a);
Images
Show BLUE plane:
a(:,:,1:2) = 0;
imshow(a);
Images
Advanced: Shuffling columns
rn = rand(1,512);
[rn1,i] = sort(rn);
b = a(:,i,:);
imshow(b);
Images
By the way…
MATLAB can also handle
• Movies
• 3D objects
• …
Conclusion
MATLAB is a mighty tool to
manipulate matrices
Images can be treated as
matrices
MATLAB is a mighty tool to
manipulate images
In my opinion…
MATLAB should be used to code
software prototypes
Research is mostly about
prototypes, not runtime-optimized
software
MATLAB should be used in
research
In my opinion…
•MATLAB prototypes must be re-
coded (e.g. in C++) if there’s need
for speed
•Algorithm development time is
drastically shorter in MATLAB
Image Algebra
A+B (matrix addition)
A-B
Examples:
http://www.ee.siue.edu/~cvip/CVIPtools_demos/mainframe.shtml
Matlab program: algebraEx.m
Quick Matlab overview
Homework:
Write a Matlab program that computes
a complement image to a given gray level image A

More Related Content

Similar to MATLAB_CIS601-03.ppt

Similar to MATLAB_CIS601-03.ppt (20)

Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
 
Summer training introduction to matlab
Summer training  introduction to matlabSummer training  introduction to matlab
Summer training introduction to matlab
 
Matlab pt1
Matlab pt1Matlab pt1
Matlab pt1
 
MATLAB & Image Processing
MATLAB & Image ProcessingMATLAB & Image Processing
MATLAB & Image Processing
 
From zero to MATLAB hero: Mastering the basics and beyond
From zero to MATLAB hero: Mastering the basics and beyondFrom zero to MATLAB hero: Mastering the basics and beyond
From zero to MATLAB hero: Mastering the basics and beyond
 
MatlabIntro (1).ppt
MatlabIntro (1).pptMatlabIntro (1).ppt
MatlabIntro (1).ppt
 
EE6711 Power System Simulation Lab manual
EE6711 Power System Simulation Lab manualEE6711 Power System Simulation Lab manual
EE6711 Power System Simulation Lab manual
 
All About MATLAB
All About MATLABAll About MATLAB
All About MATLAB
 
Matlab anilkumar
Matlab  anilkumarMatlab  anilkumar
Matlab anilkumar
 
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptxMATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
MATLAB Workshop yugjjnhhasfhlhhlllhl.pptx
 
Matlab practical and lab session
Matlab practical and lab sessionMatlab practical and lab session
Matlab practical and lab session
 
Matlab summary
Matlab summaryMatlab summary
Matlab summary
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
 
MATLAB'S PRESENTS1.pptx
MATLAB'S  PRESENTS1.pptxMATLAB'S  PRESENTS1.pptx
MATLAB'S PRESENTS1.pptx
 
Mat lab workshop
Mat lab workshopMat lab workshop
Mat lab workshop
 
Mit6 094 iap10_lec01
Mit6 094 iap10_lec01Mit6 094 iap10_lec01
Mit6 094 iap10_lec01
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
 
Summer training matlab
Summer training matlab Summer training matlab
Summer training matlab
 
Matlab - Introduction and Basics
Matlab - Introduction and BasicsMatlab - Introduction and Basics
Matlab - Introduction and Basics
 
Summer training in matlab
Summer training in matlabSummer training in matlab
Summer training in matlab
 

More from aboma2hawi

Introduction_to_Matlab_lecture.pptx
Introduction_to_Matlab_lecture.pptxIntroduction_to_Matlab_lecture.pptx
Introduction_to_Matlab_lecture.pptxaboma2hawi
 
programming_tutorial_course_ lesson_1.pptx
programming_tutorial_course_ lesson_1.pptxprogramming_tutorial_course_ lesson_1.pptx
programming_tutorial_course_ lesson_1.pptxaboma2hawi
 
matlab_tutorial.ppt
matlab_tutorial.pptmatlab_tutorial.ppt
matlab_tutorial.pptaboma2hawi
 
HDP Module One (1).pptx
HDP Module One (1).pptxHDP Module One (1).pptx
HDP Module One (1).pptxaboma2hawi
 
5_2019_01_12!09_25_57_AM.ppt
5_2019_01_12!09_25_57_AM.ppt5_2019_01_12!09_25_57_AM.ppt
5_2019_01_12!09_25_57_AM.pptaboma2hawi
 
10.1.1.1039.4745
10.1.1.1039.474510.1.1.1039.4745
10.1.1.1039.4745aboma2hawi
 
10.1.1.193.2962
10.1.1.193.296210.1.1.193.2962
10.1.1.193.2962aboma2hawi
 
Step response plot of dynamic system; step response data matlab step
Step response plot of dynamic system; step response data   matlab stepStep response plot of dynamic system; step response data   matlab step
Step response plot of dynamic system; step response data matlab stepaboma2hawi
 
Lab 4 matlab for controls state space analysis
Lab 4   matlab for controls   state space analysisLab 4   matlab for controls   state space analysis
Lab 4 matlab for controls state space analysisaboma2hawi
 

More from aboma2hawi (14)

Introduction_to_Matlab_lecture.pptx
Introduction_to_Matlab_lecture.pptxIntroduction_to_Matlab_lecture.pptx
Introduction_to_Matlab_lecture.pptx
 
programming_tutorial_course_ lesson_1.pptx
programming_tutorial_course_ lesson_1.pptxprogramming_tutorial_course_ lesson_1.pptx
programming_tutorial_course_ lesson_1.pptx
 
Matlab-3.pptx
Matlab-3.pptxMatlab-3.pptx
Matlab-3.pptx
 
matlab_tutorial.ppt
matlab_tutorial.pptmatlab_tutorial.ppt
matlab_tutorial.ppt
 
Matlab-1.pptx
Matlab-1.pptxMatlab-1.pptx
Matlab-1.pptx
 
HDP Module One (1).pptx
HDP Module One (1).pptxHDP Module One (1).pptx
HDP Module One (1).pptx
 
5_2019_01_12!09_25_57_AM.ppt
5_2019_01_12!09_25_57_AM.ppt5_2019_01_12!09_25_57_AM.ppt
5_2019_01_12!09_25_57_AM.ppt
 
08822428
0882242808822428
08822428
 
08764396
0876439608764396
08764396
 
109 me0422
109 me0422109 me0422
109 me0422
 
10.1.1.1039.4745
10.1.1.1039.474510.1.1.1039.4745
10.1.1.1039.4745
 
10.1.1.193.2962
10.1.1.193.296210.1.1.193.2962
10.1.1.193.2962
 
Step response plot of dynamic system; step response data matlab step
Step response plot of dynamic system; step response data   matlab stepStep response plot of dynamic system; step response data   matlab step
Step response plot of dynamic system; step response data matlab step
 
Lab 4 matlab for controls state space analysis
Lab 4   matlab for controls   state space analysisLab 4   matlab for controls   state space analysis
Lab 4 matlab for controls state space analysis
 

Recently uploaded

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...M56BOOKSTORE PRODUCT/SERVICE
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 

Recently uploaded (20)

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 

MATLAB_CIS601-03.ppt

  • 1. CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young
  • 2. MATLAB This introduction will give • a brief overview, it’s not a MATLAB tutorial ! • Some basic ideas • Main advantages and drawbacks compared to other languages
  • 3. MATLAB What Is MATLAB? MATLAB (MATrix LABoratory) • high-performance language for technical computing • computation, visualization, and programming in an easy-to- use environment Typical uses include: • Math and computation • Algorithm development • Modelling, simulation, and prototyping • Data analysis, exploration, and visualization • Scientific and engineering graphics • Application development, including Graphical User Interface building
  • 4. Why MATLAB A good choice for vision program development because: • Easy to do very rapid prototyping • Quick to learn, and good documentation • A good library of image processing functions • Excellent display capabilities • Widely used for teaching and research in universities and industry • Another language to impress your boss with !
  • 5. Why not MATLAB Has some drawbacks: • Slow for some kinds of processes • Not geared to the web • Not designed for large-scale system development
  • 6. MATLAB Components MATLAB consists of: • The MATLAB language • a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. • The MATLAB working environment • the set of tools and facilities that you work with as the MATLAB user or programmer, including tools for developing, managing, debugging, and profiling • Handle Graphics • the MATLAB graphics system. It includes high-level commands for two- dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. • …(cont’d)
  • 7. MATLAB Components … • The MATLAB function library. • a vast collection of computational algorithms ranging from elementary functions like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms as well as special image processing related functions • The MATLAB Application Program Interface (API) • a library that allows you to write C and Fortran programs that interact with MATLAB. It include facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MAT-files.
  • 8. MATLAB Some facts for a first impression • Everything in MATLAB is a matrix ! • MATLAB is an interpreted language, no compilation needed (but possible) • MATLAB does not need any variable declarations, no dimension statements, has no packaging, no storage allocation, no pointers • Programs can be run step by step, with full access to all variables, functions etc.
  • 9. What does Matlab code look like? A simple example: a = 1 while length(a) < 10 a = [0 a] + [a 0] end which prints out Pascal’s triangle: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 (with “a=” before each line).
  • 10. What does Matlab code look like? Another simple example: t = 0:pi/100:2*pi; y = sin(t); plot(t,y)
  • 11. What does Matlab code look like? Another simple example: t = 0:pi/100:2*pi; y = sin(t); plot(t,y) Remember: EVERYTHING IN MATLAB IS A MATRIX ! creates 1 x 200 Matrix Argument and result: 1 x 200 Matrix
  • 13. Matrices •Rows and columns are always numbered starting at 1 •Matlab matrices are of various types to hold different kinds of data (usually floats or integers) • A single number is really a 1 x 1 matrix in Matlab! • Matlab variables are not given a type, and do not need to be declared • Any matrix can be assigned to any variable
  • 14. Matrices Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] A = [2 7 4; 3 8 9] B = [ A A ] 2 7 4 2 7 4 2 7 4 3 8 9 ?
  • 15. Matrices Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] A = [2 7 4; 3 8 9] B = [ A A ] 2 7 4 2 7 4 2 7 4 3 8 9 2 7 4 3 8 9 2 7 4 3 8 9
  • 17. Matrices Some operators must be handled with care: A = [1 2 ; 4 5] B = A * A prints 9 12 24 33 B = A .* A prints 1 4 16 25 Element by element multiplication
  • 18. Submatrices A matrix can be indexed using another matrix, to produce a subset of its elements: a = [100 200 300 400 500 600 700] b = [3 5 6] c = a(b): 300 500 600
  • 19. Submatrices To get a subsection of a matrix, we can produce the index matrix with the colon operator: a(2:5) prints ans = 200 300 400 500 •This works in 2-D as well, e.g. c(2:3, 1:2) produces a 2 x 2 submatrix. •The rows and columns of the submatrix are renumbered.
  • 20. loops ‘for’ loops in MATLAB iterate over matrix elements: b = 0 for i = [ 3 9 17] b = b + i; end Result: 29 Note: The MATLAB way to write that program would have been: b = sum([ 3 9 17]); Avoid loops if possible !
  • 21. loops The typical ‘for’ loop looks like: for i = 1:6 … end Which is the same as: for i = [1 2 3 4 5 6] … end
  • 23. Images So why MATLAB and IMAGE PROCESSING ?
  • 24. Images Images can be treated as matrices !
  • 25. Images Loading an image: a = imread(‘picture.jpg’); imshow(a);
  • 26. Images Image (=matrix) size: size(a): 384 512 3 R G B 384 512
  • 29. Images Show GREEN plane: a(:,:,[1 3]) = 0; imshow(a);
  • 31. Images Advanced: Shuffling columns rn = rand(1,512); [rn1,i] = sort(rn); b = a(:,i,:); imshow(b);
  • 33. By the way… MATLAB can also handle • Movies • 3D objects • …
  • 34. Conclusion MATLAB is a mighty tool to manipulate matrices Images can be treated as matrices MATLAB is a mighty tool to manipulate images
  • 35. In my opinion… MATLAB should be used to code software prototypes Research is mostly about prototypes, not runtime-optimized software MATLAB should be used in research
  • 36. In my opinion… •MATLAB prototypes must be re- coded (e.g. in C++) if there’s need for speed •Algorithm development time is drastically shorter in MATLAB
  • 37. Image Algebra A+B (matrix addition) A-B Examples: http://www.ee.siue.edu/~cvip/CVIPtools_demos/mainframe.shtml Matlab program: algebraEx.m Quick Matlab overview Homework: Write a Matlab program that computes a complement image to a given gray level image A