Machine Vision Toolbox For MATLAB PDF
Machine Vision Toolbox For MATLAB PDF
4
Release date January 2015
Licence LGPL
Toolbox home page http://www.petercorke.com/robot
Discussion group http://groups.google.com.au/group/robotics-tool-box
Copyright
2015
c Peter Corke
peter.i.corke@gmail.com
http://www.petercorke.com
3
Preface
springer.com
123 as image file reading and writing, acquisition, dis-
play, filtering, blob, point and line feature extrac-
tion, mathematical morphology, homographies, vi-
sual Jacobians, camera calibration and color space conversion. The Toolbox, combined
R
with MATLAB and a modern workstation computer, is a useful and convenient en-
vironment for investigation of machine vision algorithms. For modest image sizes the
processing rate can be sufficiently real-time to allow for closed-loop control. Fo-
cus of attention methods such as dynamic windowing (not provided) can be used to
increase the processing rate. With input from a firewire or web camera (support pro-
vided) and output to a robot (not provided) it would be possible to implement a visual
R
servo system entirely in MATLAB .
An image is usually treated as a rectangular array of scalar values representing inten-
R
sity or perhaps range. The matrix is the natural datatype for MATLAB and thus
makes the manipulation of images easily expressible in terms of arithmetic statements
R
in MATLAB language. Many image operations such as thresholding, filtering and
R
statistics can be achieved with existing MATLAB functions. The Toolbox extends
this core functionality with M-files that implement functions and classes, and mex-files
for some compute intensive operations. It is possible to use mex-files to interface with
image acquisition hardware ranging from simple framegrabbers to robots. Examples
for firewire cameras under Linux are provided.
The routines are written in a straightforward manner which allows for easy under-
R
standing. MATLAB vectorization has been used as much as possible to improve
efficiency, however some algorithms are not amenable to vectorization. If you have the
R
Machine Vision Toolbox for MATLAB 4 Copyright
Peter
c Corke 2015
R
MATLAB compiler available then this can be used to compile bottleneck functions.
Some particularly compute intensive functions are provided as mex-files and may need
to be compiled for the particular platform. This toolbox considers images generally
as arrays of double precision numbers. This is extravagant on storage, though this is
much less significant today than it was in the past.
This toolbox is not a clone of the Mathworks own Image Processing Toolbox (IPT)
although there are many functions in common. This toolbox predated IPT by many
years, is open-source, contains many functions that are useful for image feature extrac-
tion and control. It was developed under Unix and Linux systems and some functions
rely on tools and utilities that exist only in that environment.
R
The manual is now auto-generated from the comments in the MATLAB code itself
which reduces the effort in maintaining code and a separate manual as I used to the
downside is that there are no worked examples and figures in the manual. However
the book Robotics, Vision & Control provides a detailed discussion (over 600 pages,
nearly 400 figures and 1000 code examples) of how to use the Toolbox functions to
solve many types of problems in robotics and machine vision.
R
Machine Vision Toolbox for MATLAB 5 Copyright
Peter
c Corke 2015
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Functions by category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1 Introduction 15
1.1 Whats changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.1.1 New features and changes to MVTB 3.4 . . . . . . . . . . . . 15
1.2 How to obtain the Toolbox . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 MATLAB version issues . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Use in teaching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Use in research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.1 Related software . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
R
Machine Vision Toolbox for MATLAB 6 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
colnorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
colordistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
colorize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
colorkmeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
colorname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
colorseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
colorspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
diff2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
distributeblocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
dockfigs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
doesblockexist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
dtransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
e2h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
EarthView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
edgelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
epidist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
epiline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
FeatureMatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
filt1d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
FishEyeCamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
fmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
gauss2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
gaussfunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
h2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
hist2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
hitormiss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
homline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
homography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
homtrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
homwarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Hough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
humoments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
ianimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
ibbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
iblobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
icanny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
iclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
icolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
iconcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
icorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
icp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
idecimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
idilate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
idisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
idisplabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
idouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
iendpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
ierode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
R
Machine Vision Toolbox for MATLAB 7 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
igamm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
igraphseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
ihist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
iint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
iisum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
ilabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
iline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
im2col . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
ImageSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
imatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
imeshgrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
imoments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
imono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
imorph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
imser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
inormhist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
intgimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
invcamcal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
iopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
ipad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
ipaste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
ipixswitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
iprofile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
ipyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
irank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
iread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
irectify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
ireplicate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
iroi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
irotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
isamesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
iscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
iscalemax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
iscalespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
iscolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
ishomog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
ishomog2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
isift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
isimilarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
isize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
ismooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
isobel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
isrot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
isrot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
istereo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
istretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
isurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
isvec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
ithin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
ithresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
R
Machine Vision Toolbox for MATLAB 8 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
itrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
itriplepoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
ivar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
iwindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
kcircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
kdgauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
kdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
kgauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
klaplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
klog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
kmeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
ksobel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
ktriangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
lambda2rg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
lambda2xy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
LineFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
loadspectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
luminos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
mkcube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
mkgrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
mlabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
morphdemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
mplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
mpq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
mpq poly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
mtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
multidfprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
ncc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
niblack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
npq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
npq poly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
numcols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
numrows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
optparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
otsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
peak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
peak2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
PGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
pickregion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
plot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
plot arrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
plot box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
plot circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
plot ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
plot ellipse inv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
plot homline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
plot point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
plot poly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
plot sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
R
Machine Vision Toolbox for MATLAB 9 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
plotp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Plucker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
pnmfilt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
PointFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
polydiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
radgrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
randinit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
ransac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Ray3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
RegionFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
rg addticks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
rgb2xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
rluminos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
runscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
rvcpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
sad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
ScalePointFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
showpixels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
SiftPointFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
simulinkext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
SphericalCamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
ssd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
stdisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
SurfPointFeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
symexpr2slblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
tb optparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
testpattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Tracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
tristim2cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
upq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
upq poly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
VideoCamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
VideoCamera fg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
VideoCamera IAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
xaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
xycolorspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
xyzlabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
yaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
YUV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
zcross . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
zncc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
zsad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
zssd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
R
Machine Vision Toolbox for MATLAB 10 Copyright
Peter
c Corke 2015
Functions by category
R
Machine Vision Toolbox for MATLAB 11 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
icanny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Features
ismooth . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
isobel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
radgrad . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Region features
RegionFeature . . . . . . . . . . . . . . . . . . . . . 205
colorkmeans . . . . . . . . . . . . . . . . . . . . . . . . 57
Kernels colorseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
kcircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 ibbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
kdgauss . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 iblobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
kdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 igraphseg . . . . . . . . . . . . . . . . . . . . . . . . . 104
kgauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ilabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
klaplace . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 imoments . . . . . . . . . . . . . . . . . . . . . . . . . 112
klog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 imser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
ksobel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ithresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
ktriangle . . . . . . . . . . . . . . . . . . . . . . . . . . 148 niblack . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
otsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Non-linear
dtransform . . . . . . . . . . . . . . . . . . . . . . . . . 63 Line features
irank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Hough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
ivar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 LineFeature . . . . . . . . . . . . . . . . . . . . . . . 149
iwindow . . . . . . . . . . . . . . . . . . . . . . . . . . 143
R
Machine Vision Toolbox for MATLAB 12 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
Integral image
Utility
iisum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
intgimage . . . . . . . . . . . . . . . . . . . . . . . . . 116
Image utility
idisplabel . . . . . . . . . . . . . . . . . . . . . . . . . 100
idisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Edge representation
iread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
pnmfilt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 boundmatch . . . . . . . . . . . . . . . . . . . . . . . . 28
showpixels . . . . . . . . . . . . . . . . . . . . . . . . 214 edgelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
R
Machine Vision Toolbox for MATLAB 13 Copyright
Peter
c Corke 2015
CONTENTS CONTENTS
R
Machine Vision Toolbox for MATLAB 14 Copyright
Peter
c Corke 2015
Chapter 1
Introduction
This release represents continued evolution and refinement of the Toolbox, rather than
a significant number of new features. Theres been a shameful lack of releases, the last
was October 2012. Points of note in this dot release include:
The mex folder contains prebuilt MEX files for many platforms including 32-
and 64-bit Windows, MacOS and Linux.
Plucker coordinate class Plucker for describing lines in 3D.
idisp has a more polished display and works with the major changes to graph-
R
ics in MATLAB 14b.
The gamma correction function igamma has been renamed igamm since igamma
is now a method of floating point numbers which cannot be overridden.
iconv now performs correlation, not convolution. This was neccessary to en-
sure consistency with example in the book, but means that the function is very
badly/confusingly named.
The distance transform function dxform has been renamed dtransform.
All Simulink models have been updated to work with the latest version of roblocks.slx.
For those with access to the Image Processing Toolbox (IPT) there are some alternative
versions of a few MVTB functions that use IPT rather than provided MEX files. These
are provided in the folder vision/IPT and can be copied into the vision folder to
access that functionality.
R
Machine Vision Toolbox for MATLAB 15 Copyright
Peter
c Corke 2015
1.2. HOW TO OBTAIN THE TOOLBOX CHAPTER 1. INTRODUCTION
1.2.1 Documentation
This document vision.pdf is a manual that describes all functions in the Toolbox. It
R
is auto-generated from the comments in the MATLAB code and is fully hyperlinked:
R
Machine Vision Toolbox for MATLAB 16 Copyright
Peter
c Corke 2015
1.3. MATLAB VERSION ISSUES CHAPTER 1. INTRODUCTION
to external web sites, the table of content to functions, and the See also functions to
each other.
The same documentation is available online in alphabetical order at http://www.
petercorke.com/MVTB/r3/html/index_alpha.html or by category at http:
//www.petercorke.com/MVTB/r3/html/index.html.
R
Documentation is also available via the MATLAB help browser, Machine Vision
Toolbox appears under the Contents.
1.6 Support
There is no support! This software is made freely available in the hope that you find it
useful in solving whatever problems you have to hand. I am happy to correspond with
R
Machine Vision Toolbox for MATLAB 17 Copyright
Peter
c Corke 2015
1.7. ACKNOWLEDGEMENTS CHAPTER 1. INTRODUCTION
people who have found genuine bugs or deficiencies but my response time can be long
and I cant guarantee that I respond to your email.
I can guarantee that I will not respond to any requests for help with assignments
or homework, no matter how urgent or important they might be to you. Thats
what your teachers, tutors, lecturers and professors are paid to do.
You might instead like to communicate with other users via the Google Group called
Robotics and Machine Vision Toolbox
http://groups.google.com.au/group/robotics-tool-box
which is a forum for discussion. You need to signup in order to post, and the signup
process is moderated by me so allow a few days for this to happen. I need you to write a
few words about why you want to join the list so I can distinguish you from a spammer
or a web-bot.
1.7 Acknowledgements
This release includes functions for computing image plane homographies and the fun-
damental matrix, contributed by Nuno Alexandre Cid Martins of I.S.R., Coimbra.
RANSAC code by Peter Kovesi; pose estimation by Francesco Moreno-Noguer, Vin-
cent Lepetit, Pascal Fua at the CVLab-EPFL; color space conversions by Pascal Ge-
treuer; numerical routines for geometric vision by various members of the Visual Ge-
ometry Group at Oxford (from the web site of the Hartley and Zisserman book; the k-
means and MSER algorithms by Andrea Vedaldi and Brian Fulkerson;the graph-based
image segmentation software by Pedro Felzenszwalb; and the SURF feature detec-
tor by Dirk-Jan Kroon at U. Twente. The Camera Calibration Toolbox by Jean-Yves
Bouguet is used unmodified.Functions such as SURF, MSER, graph-based segmenta-
tion and pose estimation are based on great code Some of the MEX file use some really
neat macros that were part of the package VISTA Copyright 1993, 1994 University of
British Columbia. See the file CONTRIB for details.
R
Machine Vision Toolbox for MATLAB 18 Copyright
Peter
c Corke 2015
Chapter 2
about
Compact display of variable type
about(x) displays a compact line that describes the class and dimensions of x.
about x as above but this is the command rather than functional form
Examples
>> a=1;
>> about a
a [double] : 1x1 (8 bytes)
>> a = rand(5,7);
>> about a
a [double] : 5x7 (280 bytes)
See also
whos
anaglyph
Convert stereo images to an anaglyph image
a = anaglyph(left, right) is an anaglyph image where the two images of a stereo pair
are combined into a single image by coding them in two different colors. By default
R
Machine Vision Toolbox for MATLAB 19 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Example
References
See also
stdisp
angdiff
Difference of two angles
d = angdiff(th1, th2) returns the difference between angles th1 and th2 on the circle.
The result is in the interval [-pi pi). If th1 is a column vector, and th2 a scalar then re-
turn a column vector where th2 is modulo subtracted from the corresponding elements
of th1.
R
Machine Vision Toolbox for MATLAB 20 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Animate
Create an animation
Helper class for creating animations. Saves snapshots of a figture as a folder of indi-
vidual PNG format frames numbered 0000.png, 0001.png and so on.
Example
anim = Animate(movie);
for i=1:100
plot(...);
anim.add();
end
To convert the image files to a movie you could use a tool like ffmpeg
% ffmpeg -r 10 -i movie/*.png out.mp4
Animate.Animate
Create an animation class
Options
Animate.add
Adds current plot to the animation
A.ADD() adds the current figure in PNG format to the animation folder with a unique
sequential filename.
R
Machine Vision Toolbox for MATLAB 21 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
AxisWebCamera
Image from Axis webcam
A concrete subclass of ImageSource that acquires images from a web camera built by
Axis Communications (www.axis.com).
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
See also
ImageSource, video
AxisWebCamera.AxisWebCamera
Axis web camera constructor
R
Machine Vision Toolbox for MATLAB 22 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
AxisWebCamera.char
Convert to string
A.char() is a string representing the state of the camera object in human readable form.
See also
AxisWebCamera.display
AxisWebCamera.close
Close the image source
AxisWebCamera.grab
Acquire image from the camera
Notes
Some web cameras have a fixed picture taking interval, and this function will
return the most recently captured image held in the camera.
R
Machine Vision Toolbox for MATLAB 23 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
BagOfWords
Bag of words class
The BagOfWords class holds sets of features for a number of images and supports
image retrieval by comparing new images with those in the bag.
Methods
isword Return all features assigned to word
occurrences Return number of occurrences of word
remove stop Remove stop words
wordvector Return word frequency vector
wordfreq Return words and their frequencies
similarity Compare two word bags
contains List the images that contain a word
exemplars Display examples of word support regions
display Display the parameters of the bag of words
char Convert the parameters of the bag of words to a string
Properties
Reference
J.Sivic and A.Zisserman, Video Google: a text retrieval approach to object matching
in videos, in Proc. Ninth IEEE Int. Conf. on Computer Vision, pp.1470-1477, Oct.
2003.
See also
PointFeature
R
Machine Vision Toolbox for MATLAB 24 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
BagOfWords.BagOfWords
Create a BagOfWords object
b = BagOfWords(f, k) is a new bag of words created from the feature vector f and with
k words. f can also be a cell array, as produced by ISURF() for an image sequence.
The features are sorted into k clusters and each cluster is termed a visual word.
b = BagOfWords(f, b2) is a new bag of words created from the feature vector f but
clustered to the words (and stop words) from the existing bag b2.
Notes
See also
PointFeature, isurf
BagOfWords.char
Convert to string
BagOfWords.contains
Find images containing word
k = B.contains(w) is a vector of the indices of images in the sequence that contain one
or more instances of the word w.
BagOfWords.display
Display value
B.display() displays the parameters of the bag in a compact human readable form.
R
Machine Vision Toolbox for MATLAB 25 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
This method is invoked implicitly at the command line when the result of an
expression is a BagOfWords object and the command has no trailing semicolon.
See also
BagOfWords.char
BagOfWords.exemplars
display exemplars of words
Options
BagOfWords.isword
Features from words
f = B.isword(w) is a vector of feature objects that are assigned to any of the word w. If
w is a vector of words the result is a vector of features assigned to all the words in w.
BagOfWords.occurrence
Word occurrence
R
Machine Vision Toolbox for MATLAB 26 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
BagOfWords.remove stop
Remove stop words
B.remove stop(n) removes the n most frequent words (the stop words) from the bag.
All remaining words are renumbered so that the word labels are consecutive.
BagOfWords.wordfreq
Word frequency statistics
BagOfWords.wordvector
Word frequency vector
wf = B.wordvector(J) is the word frequency vector for the Jth image in the bag.
The vector is K 1 and the angle between any two WFVs is an indication of image
similarity.
Notes
blackbody
Compute blackbody emission spectrum
R
Machine Vision Toolbox for MATLAB 27 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Example
l = [380:10:700]*1e-9; % visible spectrum
e = blackbody(l, 6500); % emission of sun
plot(l, e)
References
boundmatch
Match boundary profiles
x = boundmatch(R1, r2) is the correlation of the two boundary profiles R1 and r2.
Each is an N 1 vector of distances from the centroid of an object to points on its
perimeter at equal angular increments spanning 2pi radians. x is also N 1 and is a
correlation whose peak indicates the relative orientation of one profile with respect to
the other.
[x,s] = boundmatch(R1, r2) as above but also returns the relative scale s which is the
size of object 2 with respect to object 1.
Notes
See also
RegionFeature.boundary, xcorr
bresenham
Generate a line
p = bresenham(x1, y1, x2, y2) is a list of integer coordinates (2 N ) for points lying
on the line segement (x1,y1) to (x2,y2).
p = bresenham(p1, p2) as above but p1=[x1,y1] and p2=[x2,y2].
R
Machine Vision Toolbox for MATLAB 28 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
icanvas
camcald
Camera calibration from data points
See also
CentralCamera
Camera
Camera superclass
R
Machine Vision Toolbox for MATLAB 29 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
plot plot projection of world point to image plane
hold control figure hold for image plane window
ishold test figure hold for image plane
clf clear image plane
figure figure holding the image plane
mesh draw shape represented as a mesh
point draw homogeneous points on image plane
homline draw homogeneous lines on image plane
lineseg draw line segment defined by points
plot camera draw camera in world view
rpy set camera attitude
move clone Camera after motion
centre get world coordinate of camera centre
delete object destructor
char convert camera parameters to string
display display camera parameters
Properties (read/write)
Notes
R
Machine Vision Toolbox for MATLAB 30 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Camera.Camera
Create camera object
Options
Notes
Normally the class plots points and lines into a set of axes that represent the
image plane. The image option paints the specified image onto the image plane
and allows points and lines to be overlaid.
See also
Camera.centre
Get camera position
Camera.char
Convert to string
R
Machine Vision Toolbox for MATLAB 31 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Camera.clf
Clear the image plane
Camera.delete
Camera object destructor
C.delete() destroys all figures associated with the Camera object and removes the
object.
Camera.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a Camera object and the command has no trailing semicolon.
See also
Camera.char
Camera.figure
Return figure handle
H = C.figure() is the handle of the figure that contains the cameras image plane graph-
ics.
R
Machine Vision Toolbox for MATLAB 32 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Camera.hold
Control hold on image plane graphics
Camera.homline
Plot homogeneous lines on image plane
C.homline(L) plots lines on the camera image plane which are defined by columns of
L (3 N ) considered as lines in homogeneous form: a.u + b.v + c = 0.
Camera.ishold
Return image plane hold status
H = C.ishold() returns true (1) if the cameras image plane is in hold mode, otherwise
false (0).
Camera.lineseg
handle for this camera image plane
Camera.mesh
Plot mesh object on image plane
R
Machine Vision Toolbox for MATLAB 33 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Temporarily overrides the current camera pose C.T.
Additional arguments are passed to plot as line style parameters.
See also
Camera.move
Instantiate displaced camera
C2 = C.move(T) is a new camera object that is a clone of C but its pose is displaced
by the homogeneous transformation T with respect to the current pose of C.
Camera.plot
Plot points on image plane
C.plot(p, options) projects world points p (3 N ) to the image plane and plots them.
If p is 2 N the points are assumed to be image plane coordinates and are plotted
directly.
uv = C.plot(p) as above but returns the image plane coordinates uv (2 N ).
If p has 3 dimensions (3 N S) then it is considered a sequence of point sets
and is displayed as an animation.
C.plot(L, options) projects the world lines represented by the array of Plucker objects
(1 N ) to the image plane and plots them.
li = C.plot(L, options) as above but returns an array (3 N ) of image plane lines in
homogeneous form.
R
Machine Vision Toolbox for MATLAB 34 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Overrides the current camera pose C.T.
fps, N Number of frames per second for point sequence display
sequence Annotate the points with their index
textcolor, C Text color for annotation (default black)
textsize, S Text size for annotation (default 12)
drawnow Execute MATLAB drawnow function
Additional options are considered MATLAB linestyle parameters and are passed di-
rectly to plot.
See also
Camera.plot camera
Display camera icon in world view
Options
Notes
R
Machine Vision Toolbox for MATLAB 35 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Camera.point
Plot homogeneous points on image plane
C.point(p) plots points on the camera image plane which are defined by columns of p
(3 N ) considered as points in homogeneous form.
Camera.rpy
Set camera attitude
CatadioptricCamera
Catadioptric camera class
Methods
R
Machine Vision Toolbox for MATLAB 36 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Properties (read/write)
Notes
See also
CentralCamera, Camera
CatadioptricCamera.CatadioptricCamera
Create central projection camera object
R
Machine Vision Toolbox for MATLAB 37 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
The elevation angle range is from -pi/2 (below the mirror) to maxangle above the
horizontal plane.
See also
CatadioptricCamera.project
Project world points to image plane
uv = C.project(p, options) are the image plane coordinates for the world points p.
The columns of p (3 N ) are the world points and the columns of uv (2 N ) are the
corresponding image plane points.
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Temporarily overrides the current camera pose C.T.
R
Machine Vision Toolbox for MATLAB 38 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
Camera.plot
ccdresponse
CCD spectral response
Notes
References
See also
rluminos
ccodefunctionstring
Converts a symbolic expression into a C-code function
R
Machine Vision Toolbox for MATLAB 39 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
funname, name Specify the name of the generated C-function. If this optional argument is omitted,
the variable name of the first input argument is used, if possible.
output, outVar Defines the identifier of the output variable in the C-function.
vars, varCells The inputs to the C-code function must be defined as a cell array. The elements of this
cell array contain the symbolic variables required to compute the output. The elements
may be scalars, vectors or matrices symbolic variables. The C-function prototype will
be composed accoringly as exemplified above.
flag, sig Specifies if function signature only is generated, default (false).
Example
% Create symbolic variables
syms q1 q2 q3
Q = [q1 q2 q3];
% Create symbolic expression
myrot = rotz(q3)*roty(q2)*rotx(q1)
% Generate C-function string
[funstr, hdrstr] = ccodefunctionstring(myrot,output,foo, ...
vars,{Q},funname,rotate_xyz)
Notes
The function wraps around the built-in Matlab function ccode. It does not
check for proper C syntax. You must take care of proper dimensionality of inputs
and outputs with respect to your symbolic expression on your own. Otherwise
the generated C-function may not compile as desired.
Author
See also
ccode, matlabfunction
R
Machine Vision Toolbox for MATLAB 40 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ccxyz
XYZ chromaticity coordinates
References
See also
cmfxyz
CentralCamera
Perspective camera class
This camera model assumes central projection, that is, the focal point is at z=0 and the
image plane is at z=f. The image is not inverted.
R
Machine Vision Toolbox for MATLAB 41 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
project project world points and lines
K camera intrinsic matrix
C camera matrix
H camera motion to homography
invH decompose homography
F camera motion to fundamental matrix
E camera motion to essential matrix
invE decompose essential matrix
fov field of view
ray Ray3D corresponding to point
centre projective centre
plot plot projection of world point on image plane
hold control hold for image plane
ishold test figure hold for image plane
clf clear image plane
figure figure holding the image plane
mesh draw shape represented as a mesh
point draw homogeneous points on image plane
line draw homogeneous lines on image plane
plot camera draw camera in world view
plot line tr draw line in theta/rho format
plot epiline draw epipolar line
flowfield compute optical flow
visjac p image Jacobian for point features
visjac p polar image Jacobian for point features in polar coordinates
visjac l image Jacobian for line features
visjac e image Jacobian for ellipse features
rpy set camera attitude
move clone Camera after motion
centre get world coordinate of camera centre
estpose estimate pose
delete object destructor
char convert camera parameters to string
display display camera parameters
Properties (read/write)
R
Machine Vision Toolbox for MATLAB 42 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
Camera
CentralCamera.CentralCamera
Create central projection camera object
Options
R
Machine Vision Toolbox for MATLAB 43 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
CentralCamera.C
Camera matrix
C = C.C() is the 34 camera matrix, also known as the camera calibration or projection
matrix.
CentralCamera.centre
Projective centre
p = C.centre() returns the 3D world coordinate of the projective centre of the camera.
Reference
See also
Ray3D
CentralCamera.E
Essential matrix
E = C.E(T) is the essential matrix relating two camera views. The first view is from
the current camera pose C.T and the second is a relative motion represented by the
homogeneous transformation T.
E = C.E(C2) is the essential matrix relating two camera views described by camera
objects C (first view) and C2 (second view).
E = C.E(f) is the essential matrix based on the fundamental matrix f (3 3) and the
intrinsic parameters of camera C.
R
Machine Vision Toolbox for MATLAB 44 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Reference
See also
CentralCamera.F, CentralCamera.invE
CentralCamera.estpose
Estimate pose from object model and camera view
Reference
CentralCamera.F
Fundamental matrix
F = C.F(T) is the fundamental matrix relating two camera views. The first view is
from the current camera pose C.T and the second is a relative motion represented by
the homogeneous transformation T.
F = C.F(C2) is the fundamental matrix relating two camera views described by camera
objects C (first view) and C2 (second view).
Reference
See also
CentralCamera.E
R
Machine Vision Toolbox for MATLAB 45 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
CentralCamera.flowfield
Optical flow
C.flowfield(v) displays the optical flow pattern for a sparse grid of points when the
camera has a spatial velocity v (6 1).
See also
quiver
CentralCamera.fov
Camera field-of-view angles.
a = C.fov() are the field of view angles (2 1) in radians for the camera x and y
(horizontal and vertical) directions.
CentralCamera.H
Homography matrix
See also
CentralCamera.H
CentralCamera.invE
Decompose essential matrix
R
Machine Vision Toolbox for MATLAB 46 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
s = C.invE(E, p) as above but only solutions in which the world point p is visible are
returned.
Reference
Notes
See also
CentralCamera.E
CentralCamera.invH
Decompose homography matrix
s = C.invH(H) decomposes the homography H (3 3) into the camera motion and the
normal to the plane.
In practice there are multiple solutions and s is a vector of structures with elements:
T, camera motion as a homogeneous transform matrix (4 4), translation not to
scale
n, normal vector to the plane (3 3)
Notes
Reference
Y.Ma, J.Kosecka, s.Soatto, s.Sastry, An invitation to 3D, Springer, 2003. section 5.3
R
Machine Vision Toolbox for MATLAB 47 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
CentralCamera.H
CentralCamera.K
Intrinsic parameter matrix
CentralCamera.plot epiline
Plot epipolar line
C.plot epiline(f, p) plots the epipolar lines due to the fundamental matrix f and the
image points p.
C.plot epiline(f, p, ls) as above but draw lines using the line style arguments ls.
H = C.plot epiline(f, p) as above but return a vector of graphic handles, one per line.
CentralCamera.plot line tr
Plot line in theta-rho format
CentralCamera.plot line tr(L) plots lines on the cameras image plane that are de-
scribed by columns of L with rows theta and rho respectively.
See also
Hough
CentralCamera.project
Project world points to image plane
R
Machine Vision Toolbox for MATLAB 48 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Temporarily overrides the current camera pose C.T.
Notes
Currently a camera or object pose sequence is not supported for the case of line
projection.
(u,v) values are set to NaN if the corresponding point is behind the camera.
See also
Camera.plot, Plucker
CentralCamera.ray
3D ray for image point
R = C.ray(p) returns a vector of Ray3D objects, one for each point defined by the
columns of p.
Reference
R
Machine Vision Toolbox for MATLAB 49 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
Ray3D
CentralCamera.visjac e
Visual motion Jacobian for point feature
J = C.visjac e(E, pl) is the image Jacobian (5 6) for the ellipse E (5 1) described
by u2 + E1v2 - 2E2uv + 2E3u + 2E4v + E5 = 0. The ellipse lies in the world plane pl
= (a,b,c,d) such that aX + bY + cZ + d = 0.
The Jacobian gives the rates of change of the ellipse parameters in terms of camera
spatial velocity.
Reference
See also
CentralCamera.visjac l
Visual motion Jacobian for line feature
J = C.visjac l(L, pl) is the image Jacobian (2N 6) for the image plane lines L (2
N ). Each column of L is a line in theta-rho format, and the rows are theta and rho
respectively.
The lines all lie in the plane pl = (a,b,c,d) such that aX + bY + cZ + d = 0.
The Jacobian gives the rates of change of the line parameters in terms of camera spatial
velocity.
Reference
R
Machine Vision Toolbox for MATLAB 50 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
CentralCamera.visjac p
Visual motion Jacobian for point feature
J = C.visjac p(uv, z) is the image Jacobian (2N 6) for the image plane points uv
(2 N ). The depth of the points from the camera is given by z which is a scalar for all
points, or a vector (N 1) of depth for each point.
The Jacobian gives the image-plane point velocity in terms of camera spatial velocity.
Reference
A tutorial on Visual Servo Control, Hutchinson, Hager & Corke, IEEE Trans. R&A,
Vol 12(5), Oct, 1996, pp 651-670.
See also
CentralCamera.visjac p polar
Visual motion Jacobian for point feature
J = C.visjac p polar(rt, z) is the image Jacobian (2N 6) for the image plane points
rt (2 N ) described in polar form, radius and theta. The depth of the points from the
camera is given by z which is a scalar for all point, or a vector (N 1) of depths for
each point.
The Jacobian gives the image-plane polar point coordinate velocity in terms of camera
spatial velocity.
Reference
R
Machine Vision Toolbox for MATLAB 51 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
cie primaries
Define CIE primary colors
p = cie primaries() is a 3-vector with the wavelengths [m] of the CIE 1976 red, green
and blue primaries respectively.
circle
Compute points on a circle
circle(C, R, opt) plots a circle centred at C (1 2) with radius R on the current axes.
x = circle(C, R, opt) is a matrix (2 N ) whose columns define the coordinates [x,y]
of points around the circumferance of a circle centred at C (1 2) and of radius R.
C is normally 2 1 but if 3 1 then the circle is embedded in 3D, and x is N 3, but
the circle is always in the xy-plane with a z-coordinate of C(3).
Options
closest
Find closest points in N-dimensional space.
R
Machine Vision Toolbox for MATLAB 52 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
[k,d1,d2] = closest(a, b) as above but also returns the distance to the second closest
point.
Notes
Is a MEX file.
See also
distance
cmfrgb
RGB color matching function
The color matching function is the RGB tristimulus required to match a particular
spectral excitation.
rgb = cmfrgb(lambda) is the CIE color matching function (N 3) for illumination
at wavelength lambda (N 1) [m]. If lambda is a vector then each row of rgb is the
color matching function of the corresponding element of lambda.
rgb = cmfrgb(lambda, E) is the CIE color matching (13) function for an illumination
spectrum E (N 1) defined at corresponding wavelengths lambda (N 1).
Notes
R
Machine Vision Toolbox for MATLAB 53 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
References
See also
cmfxyz, ccxyz
cmfxyz
matching function
The color matching function is the XYZ tristimulus required to match a particular
wavelength excitation.
xyz = cmfxyz(lambda) is the CIE xyz color matching function (N 3) for illumination
at wavelength lambda (N 1) [m]. If lambda is a vector then each row of xyz is the
color matching function of the corresponding element of lambda.
xyz = cmfxyz(lambda, E) is the CIE xyz color matching (1 3) function for an illu-
mination spectrum E (N 1) defined at corresponding wavelengths lambda (N 1).
Note
References
See also
cmfrgb, ccxyz
R
Machine Vision Toolbox for MATLAB 54 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
col2im
Convert pixel vector to image
Notes
The number of rows in pix must match the product of the elements of imsize.
See also
im2col
colnorm
Column-wise norm of a matrix
colordistance
Colorspace distance
Notes
R
Machine Vision Toolbox for MATLAB 55 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Note that Euclidean distance in the rg-chromaticity space does not correspond
well with human perception of color differences. Perceptually uniform spaces
such as Lab remedy this problem.
See also
colorspace
colorize
Colorize a greyscale image
out = colorize(im, mask, color) is a color image where each pixel in out is set to
the corresponding element of the greyscale image im or a specified color according
to whether the corresponding value of mask is true or false respectively. The color is
specified as a 3-vector (R,G,B).
out = colorize(im, func, color) as above but a the mask is the return value of the
function handle func applied to the image im, and returns a per-pixel logical result, eg.
@isnan.
Examples
Notes
See also
R
Machine Vision Toolbox for MATLAB 56 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
colorkmeans
Color image segmentation by clustering
Options
Various options are possible to choose the initial cluster centres for k-means:
random randomly choose k points from
spread randomly choose k values within the rectangle spanned by the input chromaticities.
pick interactively pick cluster centres
Notes
The k-means clustering algorithm used in the first three forms is computationally
expensive and time consuming.
Clustering is performed in xy-chromaticity space.
The residual is an indication of quality of fit, low is good.
See also
rgb2xyz, kmeans
R
Machine Vision Toolbox for MATLAB 57 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
colorname
Map between color names and RGB values
Notes
colorseg
Color image segmentation using k-means
Notes
R
Machine Vision Toolbox for MATLAB 58 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
colorkmeans
colorspace
Color space conversion of image
out = colorspace(s, im) converts the image im to a different color space according to
the string s which specifies the source and destination color spaces, s = dest<-src, or
alternatively, s = src->dest. Input and output images have 3 planes.
[o1,o2,o3] = colorspace(s, im) as above but specifies separate output channels or
planes.
colorspace(s, i1,i2,i3) as above but specifies separate input channels.
Supported color spaces are:
RGB RGB Red Green Blue (ITU-R BT.709 gamma-corrected)
YPbPr Luma (ITU-R BT.601) + Chroma
YCbCr/YCC Luma + Chroma (digitized version of YPbPr)
YUV NTSC PAL YUV Luma + Chroma
YIQ NTSC YIQ Luma + Chroma
YDbDr SECAM YDbDr Luma + Chroma
JPEGYCbCr JPEG-YCbCr Luma + Chroma
HSV/HSB Hue Saturation Value/Brightness
HSL/HLS/HSI Hue Saturation Luminance/Intensity
XYZ CIE XYZ
Lab CIE L*a*b* (CIELAB)
Luv CIE L*u*v* (CIELUV)
Lch CIE L*ch (CIELCH)
Notes
R
Machine Vision Toolbox for MATLAB 59 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
to 255. As MATLABs native datatype, double data is the natural choice, and
the RGB format used by colorspace. However, for memory and computa-
tional performance, some functions also operate with uint8 RGB. Given uint8
RGB color data, colorspace will first cast it to double RGB before process-
ing.
If im is an M 3 array, like a colormap, out will also have size M 3.
Author
diff2
First-order difference
Notes
Unlike the builtin function DIFF, the result of diff2 has the same number of
columns as the input.
See also
diff
R
Machine Vision Toolbox for MATLAB 60 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
distance
Euclidean distances between sets of points
Example
A = rand(400,100); B = rand(400,200);
d = distance(A,B);
Notes
Author
See also
closest
distributeblocks
Distribute blocks in Simulink block library
R
Machine Vision Toolbox for MATLAB 61 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
Author
See also
symexpr2slblock, doesblockexist
dockfigs
Control figure docking in the GUI
doesblockexist
Check existence of block in Simulink model
Author
R
Machine Vision Toolbox for MATLAB 62 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
symexpr2slblock, distributeblocks
dtransform
Distance transform
dt = dtransform(im, options) is the distance transform of the binary image im. The
value of each output pixel is the distance (pixels) to the closest set pixel.
Options
See also
e2h
Euclidean to homogeneous
See also
h2e
R
Machine Vision Toolbox for MATLAB 63 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
EarthView
Image from Google maps
Methods
grab Grab a frame from Google maps
size Size of image
close Close the image source
char Convert the object parameters to human readable string
Examples
Notes
Google limit the number of map queries limit to 1000 unique (different) image
requests per viewer per day. A 403 error is returned if the daily quota is exceeded.
Maximum size is 640 640 for free access, business users can get more.
There are lots of conditions on what you can do with the images, particularly
with respect to publication. See the Google web site for details.
Author
Peter Corke, with some lines of code from from get google map by Val Schmidt.
See also
ImageSource
R
Machine Vision Toolbox for MATLAB 64 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
EarthView.EarthView
Create EarthView object
ev = EarthView(options)
Options
Notes
A key is required before you can use the Google Static Maps API. The key is
a long string that can be passed to the constructor or saved as an environment
variable GOOGLE KEY. You need a Google account before you can register for
a key.
Notes
Scale is 1 for the whole world, 20 is about as high a resolution as you can get.
See also
ImageSource, EarthView.grab
EarthView.char
Convert to string
EV.char() is a string representing the state of the EarthView object in human readable
form.
R
Machine Vision Toolbox for MATLAB 65 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
EarthView.display
EarthView.grab
Grab an aerial image
Options
Examples
Notes
R
Machine Vision Toolbox for MATLAB 66 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
edgelist
Return list of edge pixels for region
Notes
Coordinates are given assuming the matrix is an image, so the indices are always
in the form (x,y) or (column,row).
im is a binary image where 0 is assumed to be background, non-zero is an object.
seed must be a point on the edge of the region.
The seed point is always the first element of the returned edgelist.
8-direction chain coding can give incorrect results when used with blobs founds
using 4-way connectivty.
Reference
R
Machine Vision Toolbox for MATLAB 67 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
ilabel
epidist
Distance of point from epipolar line
d = epidist(f, p1, p2) is the distance of the points p2 (2 M ) from the epipolar lines
due to points p1 (2 N ) where f (3 3) is a fundamental matrix relating the views
containing image points p1 and p2.
d (N M ) is the distance matrix where element d(i,j) is the distance from the point
p2(j) to the epipolar line due to point p1(i).
Author
Based on fmatrix code by, Nuno Alexandre Cid Martins, Coimbra, Oct 27, 1998, I.S.R.
See also
epiline, fmatrix
epiline
Draw epipolar lines
epiline(f, p) draws epipolar lines in current figure based on points p (2 N ) and the
fundamental matrix f (3 3). Points are specified by the columns of p.
epiline(f, p, ls) as above but draw lines using the line style arguments ls.
H = epiline(f, p, ls) as above but return a vector of graphic handles, one per line drawn.
See also
fmatrix, epidist
R
Machine Vision Toolbox for MATLAB 68 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
FeatureMatch
Feature correspondence object
This class represents the correspondence between two PointFeature objects. A vector
of FeatureMatch objects can represent the correspondence between sets of points.
Methods
plot Plot corresponding points
show Show summary statistics of corresponding points
ransac Determine inliers and outliers
inlier Return inlier matches
outlier Return outlier matches
subset Return a subset of matches
display Display value of match
char Convert value of match to string
Properties
Note
See also
R
Machine Vision Toolbox for MATLAB 69 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
FeatureMatch.FeatureMatch
Create a new FeatureMatch object
Notes
See also
FeatureMatch.char
Convert to string
FeatureMatch.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a FeatureMatch object and the command has no trailing semicolon.
See also
FeatureMatch.char
R
Machine Vision Toolbox for MATLAB 70 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
FeatureMatch.inlier
Inlier features
Notes
See also
FeatureMatch.outlier, FeatureMatch.ransac
FeatureMatch.outlier
Outlier features
Notes
See also
FeatureMatch.inlier, FeatureMatch.ransac
FeatureMatch.p
Feature point coordinate pairs
R
Machine Vision Toolbox for MATLAB 71 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
FeatureMatch.p1, FeatureMatch.p2
FeatureMatch.p1
Feature point coordinates from view 1
See also
FeatureMatch.p2
Feature point coordinates from view 2
See also
FeatureMatch.plot
Show corresponding points
M.plot(ls) as above but the optional line style arguments ls are passed to plot.
R
Machine Vision Toolbox for MATLAB 72 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
Using IDISP as above adds UserData to the figure, and an error is created if this
UserData is not found.
See also
idisp
FeatureMatch.ransac
Apply RANSAC
M.ransac(func, options) applies the RANSAC algorithm to fit the point correspon-
dences to the model described by the function func. The options are passed to the
RANSAC() function. Elements of the FeatureMatch vector have their status updated
in place to indicate whether they are inliers or outliers.
Example
f1 = isurf(im1);
f2 = isurf(im2);
m = f1.match(f2);
m.ransac( @fmatrix, 1e-4);
See also
FeatureMatch.show
Display summary statistics of the FeatureMatch vector
M.show() is a compact summary of the FeatureMatch vector M that gives the number
of matches, inliers and outliers (and their percentages).
R
Machine Vision Toolbox for MATLAB 73 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
FeatureMatch.subset
Subset of matches
filt1d
1-dimensional rank filter
Options
Notes
FishEyeCamera
Fish eye camera class
R
Machine Vision Toolbox for MATLAB 74 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
0------------> u, X
|
|
| + (principal point)
|
| Z-axis is into the page.
v, Y
This camera model assumes central projection, that is, the focal point is at z=0 and the
image plane is at z=f. The image is not inverted.
Methods
Properties (read/write)
R
Machine Vision Toolbox for MATLAB 75 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
Camera
FishEyeCamera.FishEyeCamera
Create fisheyecamera object
Options
Notes
If K is not specified it is computed such that the circular imaging region maxi-
mally fills the square image plane.
See also
R
Machine Vision Toolbox for MATLAB 76 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
FishEyeCamera.project
Project world points to image plane
uv = C.project(p, options) are the image plane coordinates for the world points p.
The columns of p (3 N ) are the world points and the columns of uv (2 N ) are the
corresponding image plane points.
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Temporarily overrides the current camera pose C.T.
See also
FishEyeCamera.plot
fmatrix
Estimate fundamental matrix
f = fmatrix(p1, p2, options) is the fundamental matrix (3 3) that relates two sets of
corresponding points p1 (2 N ) and p2 (2 N ) from two different camera views.
Notes
Reference
Hartley and Zisserman, Multiple View Geometry in Computer Vision, page 270.
R
Machine Vision Toolbox for MATLAB 77 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Author
Based on fundamental matrix code by Peter Kovesi, School of Computer Science &
Software Engineering, The University of Western Australia, http://www.csse.uwa.edu.au/,
See also
gauss2d
Gaussian kernel
out = gauss2d(im, sigma, C) is a unit volume Gaussian kernel rendered into matrix
out (W H) the same size as im (W H). The Gaussian has a standard deviation of
sigma. The Gaussian is centered at C=[U,V].
gaussfunc
kernel
k = gauss1(, c, sigma)
Returns a unit volume Gaussian smoothing kernel. The Gaussian has a standard devi-
ation of sigma, and the convolution kernel has a half size of w, that is, k is (2W+1) x
(2W+1).
h2e
Homogeneous to Euclidean
R
Machine Vision Toolbox for MATLAB 78 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
e2h
hist2d
MEX file to compute 2-D histogram.
[h,vx,vy] = hist2d(x,y)
or
[h,vx,vy] = hist2d(x,y,[x0 dx nx],[y0 dy ny])
Inputs:
x,y data points. {x(i),y(i)} is a single data point.
x0 lowest x bins lower edge
dx x bin width
nx number of x bins
y0 lowest y bins lower edge
dy y bin width
ny number of y bins
[x0,dx,nx] and [y0,dy,ny] default = [0,1,256]
Outputs:
h histogram matrix. h(i,j) = number of data points
satisfying vx(j) <= x < vx(j+1) and vy(i) <= y < vy(i+1).
vx bin lower x-ordinates (one for each column of h)
vy bin lower y-ordinates (one for each row of h)
Notes
Author
R
Machine Vision Toolbox for MATLAB 79 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
hitormiss
Hit or miss transform
H = hitormiss(im, se) is the hit-or-miss transform of the binary image im with the
structuring element se. Unlike standard morphological operations S has three possible
values: 0, 1 and dont care (represented by NaN).
References
See also
homline
Homogeneous line from two points
See also
plot homline
homography
Estimate homography
R
Machine Vision Toolbox for MATLAB 80 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
Author
Based on homography code by Peter Kovesi, School of Computer Science & Software
Engineering, The University of Western Australia, http://www.csse.uwa.edu.au/,
See also
homtrans
Apply a homogeneous transformation
See also
e2h, h2e
R
Machine Vision Toolbox for MATLAB 81 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
homwarp
Warp image by an homography
out = homwarp(H, im, options) is a warp of the image im obtained by applying the
homography H to the coordinates of every input pixel.
[out,offs] = homwarp(H, im, options) as above but offs is the offset of the warped tile
out with respect to the origin of im.
Options
full output image contains all the warped pixels, but its position with respect to the input
image is given by the second return value offs.
extrapval, V set unmapped pixels to this value (default NaN)
roi, R output image contains the specified ROI in the input image
scale, S scale the output by this factor
dimension, D ensure output image is D D
size, S size of output image S=[W,H]
coords, {U,V} coordinate matrices for im, each same size as im.
Notes
The edges of the resulting output image will in general not be be vertical and
horizontal lines.
See also
Hough
Hough transform class
The Hough transform is a technique for finding lines in an image using a voting scheme.
For every edge pixel in the input image a set of cells in the Hough accumulator (voting
array) are incremented.
In this version of the Hough transform lines are described by:
d = y cos(theta) + x sin(theta)
R
Machine Vision Toolbox for MATLAB 82 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
where theta is the angle the line makes to horizontal axis, and d is the perpendicular
distance between (0,0) and the line. A horizontal line has theta = 0, a vertical line has
theta = pi/2 or -pi/2.
The voting array is 2-dimensional, with columns corresponding to theta and rows cor-
responding to offset (d). Theta spans the range -pi/2 to pi/2 in Ntheta steps. Offset is
in the range -rho max to rho max where rho max=max(W,H).
Methods
plot Overlay detected lines
show Display the Hough accumulator
lines Return line features
char Convert Hough parameters to string
display Display Hough parameters
Properties
Notes
See also
LineFeature
Hough.Hough
Create Hough transform object
R
Machine Vision Toolbox for MATLAB 83 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
the edge strength but votes can be made equal with the option equal. The threshold is
determined from the maximum edge strength value x ht.edgeThresh.
Options
equal All edge pixels have equal weight, otherwise the edge pixel value is the vote strength
points Pass set of points rather than an edge image, in this case E (2 N ) is a set of N points,
or E (3 N ) is a set of N points with corresponding vote strengths as the third row
interpwidth, W Interpolation width (default 3)
houghthresh, T Set ht.houghThresh (default 0.5)
edgethresh, T Set ht.edgeThresh (default 0.1);
suppress, W Set ht.suppress (default 0)
nbins, N Set number of bins, if N is scalar set Nrho=Ntheta=N, else N = [Ntheta, Nrho]. Default
400 401.
Hough.char
Convert to string
Hough.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a Hough object and the command has no trailing semicolon.
See also
Hough.char
R
Machine Vision Toolbox for MATLAB 84 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Hough.lines
Find lines
See also
Hough.plot, LineFeature
Hough.plot
Plot line features
See also
Hough.lines
Hough.show
Display the Hough accumulator as image
s = HT.show() displays the Hough vote accumulator as an image using the hot col-
ormap, where heat is proportional to the number of votes.
R
Machine Vision Toolbox for MATLAB 85 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
colormap, hot
humoments
Hu moments
Notes
Reference
M-K. Hu, Visual pattern recognition by moment invariants. IRE Trans. on Information
Theory, IT-8:pp. 179-187, 1962.
See also
npq
ianimate
Display an image sequence
R
Machine Vision Toolbox for MATLAB 86 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Examples
Options
Notes
See also
ibbox
Find bounding box
box = ibbox(p) is the minimal bounding box that contains the points described by the
columns of p (2 N ).
box = ibbox(im) as above but the box minimally contains the non-zero pixels in the
image im.
R
Machine Vision Toolbox for MATLAB 87 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
iblobs
features
Options
R
Machine Vision Toolbox for MATLAB 88 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
References
Notes
The RegionFeature objects are ordered by the raster order of the top most point
(smallest v coordinate) in each blob.
Circularity is computed using the raw perimeter length scaled down by Kulpas
correction factor.
See also
icanny
edge detection
E = icanny(im, options) is an edge image obtained using the Canny edge detector
algorithm. Hysteresis filtering is applied to the gradient image: edge pixels > th1 are
connected to adjacent pixels > th0, those below th0 are set to zero.
Options
Reference
R
Machine Vision Toolbox for MATLAB 89 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
Produces a zero image with single pixel wide edges having non-zero values.
Larger values correspond to stronger edges.
If th1 is zero then no hysteresis filtering is performed.
A color image is automatically converted to greyscale first.
Author
See also
isobel, kdgauss
iclose
closing
out = iclose(im, se, options) is the image im after morphological closing with the
structuring element se. This is a morphological dilation followed by an erosion.
out = iclose(im, se, n, options) as above but the structuring element se is applied n
times, that is n erosions followed by n dilations.
Notes
For binary image a closing operation can be used to eliminate small black holes
in white regions.
Cheaper to apply a smaller structuring element multiple times than one large
one, the effective structuring element is the Minkowski sum of the structuring
element with itself n times.
Windowing options of IMORPH can be passed. By default output image is same
size as input image.
R
Machine Vision Toolbox for MATLAB 90 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
icolor
Colorize a greyscale image
Examples
Create a color image that looks the same as the greyscale image
c = icolor(im);
Notes
See also
R
Machine Vision Toolbox for MATLAB 91 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iconcat
Concatenate images
Options
Examples
Notes
The images do not have to be of the same size, and smaller images are surrounded
by background pixels which can be specified.
Works for color or greyscale images.
Direction can be abbreviated to first character, h or v.
In vertical mode all images are right justified.
In horizontal mode all images are top justified.
See also
idisp
R
Machine Vision Toolbox for MATLAB 92 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iconv
Image cross-correlation
C = iconv(im1, im2, options) is the cross-correlation of images im1 and im2. The
smaller image is taken as the kernel and correlated with the larger image.
Options
Notes
If the larger image is color (has multiple planes) the kernel is applied to each
plane, resulting in an output image with the same number of planes.
The kernel must be greyscale.
This function is a convenience wrapper for the MATLAB function CONV2.
Works for double, uint8 or uint16 images. Image and kernel must be of the same
type and the result is of the same type.
This function is badly named, it peforms cross-correlation not convolution.
See also
conv2
icorner
Corner detector
R
Machine Vision Toolbox for MATLAB 93 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
u horizontal coordinate
v vertical coordinate
strength corner strength
descriptor corner descriptor (vector)
See PointFeature for full details
Options
detector, D choose the detector where D is one of harris (default), noble or klt
sigma, S kernel width for smoothing (default 2)
deriv, D kernel for gradient (default kdgauss(2))
cmin, CM minimum corner strength
cminthresh, CT minimum corner strength as a fraction of maximum corner strength
edgegap, E dont return features closer than E pixels to the edge of image (default 2)
suppress, R dont return a feature closer than R pixels to an earlier feature (default 0)
nfeat, N return the N strongest corners (default Inf)
k, K set the value of k for the Harris detector
patch, P use a P P patch of surrounding pixel values as the feature vector. The vector has
zero mean and unit norm.
color specify that im is a color image not a sequence
Example
Notes
R
Machine Vision Toolbox for MATLAB 94 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
References
A combined corner and edge detector, C.G. Harris and M.J. Stephens, Proc.
Fourth Alvey Vision Conf., Manchester, pp 147-151, 1988.
Finding corners, J.Noble, Image and Vision Computing, vol.6, pp.121-128,
May 1988.
Good features to track, J. Shi and C. Tomasi, Proc. Computer Vision and
Pattern Recognition, pp. 593-593, IEEE Computer Society, 1994.
Robotics, Vision & Control, Section 13.3, P. Corke, Springer 2011.
See also
PointFeature, isurf
icp
Point cloud alignment
T = icp(p1, p2, options) is the homogeneous transformation that best transforms the
set of points p1 to p2 using the iterative closest point algorithm.
[T,d] = icp(p1, p2, options) as above but also returns the norm of the error between
the transformed point set p2 and p1.
Options
dplot, d show the points p1 and p2 at each iteration, with a delay of d [sec].
plot show the points p1 and p2 at each iteration, with a delay of 0.5 [sec].
maxtheta, T limit the change in rotation at each step to T (default 0.05 rad)
maxiter, N stop after N iterations (default 100)
mindelta, T stop when the relative change in error norm is less than T (default 0.001)
distthresh, T eliminate correspondences more than T x the median distance at each iteration.
R
Machine Vision Toolbox for MATLAB 95 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Example
Notes
Reference
idecimate
an image
R
Machine Vision Toolbox for MATLAB 96 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
idilate
Morphological dilation
out = idilate(im, se, options) is the image im after morphological dilation with the
structuring element se.
out = idilate(im, se, n, options) as above but the structuring element se is applied n
times, that is n dilations.
Options
Notes
Cheaper to apply a smaller structuring element multiple times than one large
one, the effective structuring element is the Minkowski sum of the structuring
element with itself n times.
Windowing options of IMORPH can be passed.
Reference
R
Machine Vision Toolbox for MATLAB 97 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
idisp
image display tool
idisp(im, options) displays an image and allows interactive investigation of pixel val-
ues, linear profiles, histograms and zooming. The image is displayed in a figure with
a toolbar across the top. If im is a cell array of images, they are first concatenated
(horizontally).
User interface
Left clicking on a pixel will display its value in a box at the top.
The line button allows two points to be specified and a new figure displays
intensity along a line between those points.
The histo button displays a histogram of the pixel values in a new figure. If the
image is zoomed, the histogram is computed over only those pixels in view.
The zoom button requires a left-click and drag to specify a box which defines
the zoomed view.
The colormap button is displayed only for greyscale images, and is a popup
button that allows different color maps to be selected.
R
Machine Vision Toolbox for MATLAB 98 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
Is a wrapper around the MATLAB builtin function IMAGE. See the MATLAB
help on Display Bit-Mapped Images for details of color mapping.
Color images are displayed in MATLAB true color mode: pixel triples map to
display RGB values. (0,0,0) is black, (1,1,1) is white.
Greyscale images are displayed in indexed mode: the image pixel value is mapped
through the color map to determine the display pixel value.
For grey scale images the minimum and maximum image values are mapped to
the first and last element of the color map, which by default (greyscale) is the
range black to white. To set your own scaling between displayed grey level and
pixel value use the cscale option.
The title of the figure window by default is the name of the variable passed in as
the image, this cant work if the first argument is an expression.
R
Machine Vision Toolbox for MATLAB 99 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Examples
Display an image which contains a map of a region, perhaps an obstacle grid, that spans
real world dimensions x, y in the range -10 to 10.
idisp(map, xyscale, {[-10 10], [-10 10]});
See also
idisplabel
Display an image with mask
idisplabel(im, labelimage, labels) displays only those image pixels which belong to a
specific class. im is a greyscale (H W ) or color (H W 3) image, and labelimage
(H W ) contains integer pixel class labels for the corresponding pixels in im. The
pixel classes to be displayed are given by labels which is either a scalar or a vector of
class labels. Non-selected pixels are displayed as white by default.
idisplabel(im, labelimage, labels, bg) as above but the grey level of the non-selected
pixels is specified by bg in the range 0 to 1 for a float image or 0 to 255 for a uint8
image..
Example
where the matrix cls is the same size as flowers and the elements are the corresponding
pixel class, a value in the range 1 to 7. To display pixels of class 5 we use
R
Machine Vision Toolbox for MATLAB 100 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
idisplabel(flowers, cls, 5)
See also
idouble
Convert integer image to double
Notes
Works for an image with arbitrary number of dimensions, eg. a color image or
image sequence.
There is a linear mapping (scaling) of the values of imd to im.
See also
iint, cast
iendpoint
Find end points in a binary skeleton image
out = iendpoint(im) is a binary image where pixels are set if the corresponding pixel
in the binary image im is the end point of a single-pixel wide line such as found in an
image skeleton. Computed using the hit-or-miss morphological operator.
R
Machine Vision Toolbox for MATLAB 101 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
References
See also
ierode
Morphological erosion
out = ierode(im, se, options) is the image im after morphological erosion with the
structuring element se.
out = ierode(im, se, n, options) as above but the structuring element se is applied n
times, that is n erosions.
Options
Notes
Cheaper to apply a smaller structuring element multiple times than one large one,
the effective structuing element is the Minkowski sum of the structuring element
with itself n times.
Windowing options of IMORPH can be passed.
Reference
R
Machine Vision Toolbox for MATLAB 102 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
igamm
correction
out = igamm(im, gamma) is a gamma corrected version of the image im. All pixels
are raised to the power gamma. Gamma encoding can be performed with gamma > 1
and decoding with gamma < 1.
out = igamm(im, sRGB) is a gamma decoded version of im using the sRGB decoding
function (JPEG images sRGB encoded).
Notes
This function was once called igamma(), but that name taken by MATLAB
method for double class objects.
Gamma decoding should be applied to any color image prior to colometric oper-
ations.
The exception to this is colorspace conversion using COLORSPACE which ex-
pects RGB images to be gamma encoded.
Gamma encoding is typically performed in a camera with gamma=0.45.
Gamma decoding is typically performed in the display with gamma=2.2.
For images with multiple planes the gamma correction is applied to all planes.
For images sequences the gamma correction is applied to all elements.
For images of type double the pixels are assumed to be in the range 0 to 1.
For images of type int the pixels are assumed in the range 0 to the maximum
value of their class. Pixels are converted first to double, processed, then con-
verted back to the integer class.
See also
iread, colorspace
R
Machine Vision Toolbox for MATLAB 103 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
igraphseg
Graph-based image segmentation
Example
im = iread(58060.jpg);
[labels,maxval] = igraphseg(im, 1500, 100, 0.5);
idisp(labels)
Reference
Notes
Author
See also
ithresh, imser
R
Machine Vision Toolbox for MATLAB 104 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ihist
Image histogram
ihist(im, options) displays the image histogram. For an image with multiple planes
the histogram of each plane is given in a separate subplot.
H = ihist(im, options) is the image histogram as a column vector. For an image with
multiple planes H is a matrix with one column per image plane.
[H,x] = ihist(im, options) as above but also returns the bin coordinates as a column
vector x.
Options
Example
[h,x] = ihist(im);
bar(x,h);
[h,x] = ihist(im, normcdf);
plot(x,h);
Notes
For a uint8 image the MEX function FHIST is used (if available)
The histogram always contains 256 bins
The bins spans the greylevel range 0-255.
For a floating point image the histogram spans the greylevel range 0-1.
For floating point images all NaN and Inf values are first removed.
See also
hist
R
Machine Vision Toolbox for MATLAB 105 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iint
Convert image to integer class
out = iint(im) is an image with unsigned 8-bit integer elements in the range 0 to 255
corresponding to the elements of the image im.
out = iint(im, class) as above but the output pixels belong to the integer class class.
Examples
Notes
Works for an image with arbitrary number of dimensions, eg. a color image or
image sequence.
If the input image is floating point (single or double) the pixel values are scaled
from an input range of [0,1] to a range spanning zero to the maximum positive
value of the output integer class.
If the input image is an integer class then the pixels are cast to change type but
not their value.
See also
idouble
R
Machine Vision Toolbox for MATLAB 106 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iisum
Sum of integral image
s = iisum(ii, u1, v1, u2, v2) is the sum of pixels in the rectangular image region defined
by its top-left (u1,v1) and bottom-right (u2,v2). ii is a precomputed integral image.
See also
intgimage
ilabel
Label an image
L = ilabel(im) is a label image that indicates connected components within the image
im (H W ). Each pixel in L (H W ) is an integer label that indicates which connected
region the corresponding pixel in im belongs to. Region labels are in the range 1 to M.
[L,m] = ilabel(im) as above but returns the value of the maximum label value.
[L,m,parents] = ilabel(im) as above but also returns region hierarchy information. The
value of parents(I) is the label of the parent, or enclosing, region of region I. A value
of 0 indicates that the region has no single enclosing region, for a binary image this
means the region touches the edge of the image, for a multilevel image it means that
the region touches more than one other region.
[L,maxlabel,parents,class] = ilabel(im) as above but also returns the class of pixels
within each region. The value of class(I) is the value of the pixels that comprise region
I.
[L,maxlabel,parents,class,edge] = ilabel(im) as above but also returns the edge-touch
status of each region. If edge(I) is 1 then region I touches edge of the image, otherwise
it does not.
Notes
R
Machine Vision Toolbox for MATLAB 107 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
iblobs, imoments
iline
Draw a line in an image
out = iline(im, p1, p2) is a copy of the image im with a single-pixel thick line drawn
between the points p1 and p2, each a 2-vector [U,V]. The pixels on the line are set to
1.
out = iline(im, p1, p2, v) as above but the pixels on the line are set to v.
Notes
See also
R
Machine Vision Toolbox for MATLAB 108 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
im2col
Convert an image to pixel per row format
out = im2col(im) is a matrix (N P ) where each row represents a single of the image
im (H W P ). The pixels are in image column order (ie. column 1, column 2 etc)
and there are N=W H rows.
out = im2col(im, mask) as above but only includes pixels if:
the corresponding element of mask (H W ) is non-zero
the corresponding element of mask (N) is non-zero where N=H W
the pixel index is included in the vector mask
See also
col2im
ImageSource
Abstract class for image sources
Methods
grab Aquire and return the next image
close Close the image source
iscolor True if image is color
size Size of image
char Convert image source parameters to human readable string
display Display image source parameters in human readable form
See also
R
Machine Vision Toolbox for MATLAB 109 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ImageSource.ImageSource
Image source constructor
Options
ImageSource.display
Display value
I.display() displays the state of the image source object in human readable form.
Notes
This method is invoked implicitly at the command line when the result of an
expression is an ImageSource object and the command has no trailing semicolon.
imatch
Template matching
R
Machine Vision Toolbox for MATLAB 110 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
The template is searched for within im2 inside a rectangular region, centred at (u,v)
and whose size is a function of s. If s is a scalar the search region is [-s, s, -s, s] relative
to (u,v). More generally s is a 4-vector s=[umin, umax, vmin, vmax] relative to (u,v).
The return value is xm=[DU,DV,CC] where (DU,DV) are the u- and v-offsets relative
to (u,v) and CC is the similarity score for the best match in the search region.
[xm,score] = imatch(im1, im2, u, v, H, s) as above but also returns a matrix of match-
ing score values for each template position tested. The rows correspond to horizontal
positions of the template, and columns the vertical position. The centre element corre-
sponds to (u,v).
Example
Consider a sequence of images im(:,:,N) and we find corner points in the kth image
corners = icorner(im(:,:,k), nfeat, 20);
Now, for each corner we look for the 11 11 patch of surrounding pixels in the next
image, by searching within a 21 21 region
for corner=corners
xm = imatch(im(:,:,k), im(:,:,k+1), 5, 10);
if xm(3) > 0.8
fprintf(feature (%f,%f) moved by (%f,%f) pixels)\n, ...
corner.u, corner.v, xm(1), xm(2) );
end
end
Notes
Useful for tracking a template in an image sequence where im1 and im2 are
consecutive images in a template and (u,v) is the coordinate of a corner point in
im1.
Is a MEX file.
im1 and im2 must be the same size.
ZNCC (zero-mean normalized cross correlation) matching is used as the simi-
larity measure. A perfect match score is 1.0 but anything above 0.8 is typically
considered to be a good match.
See also
isimilarity
R
Machine Vision Toolbox for MATLAB 111 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
imeshgrid
Domain matrices for image
[u,v] = imeshgrid(im) are matrices that describe the domain of image im and can be
used for the evaluation of functions over the image. u and v are the same szie as im.
The element u(v,u) = u and v(v,u) = v.
[u,v] = imeshgrid(im, n) as above but...
[u,v] = imeshgrid(w, H) as above but the domain is w H.
[u,v] = imeshgrid(size) as above but the domain is described size which is scalar size
size or a 2-vector [w H].
See also
meshgrid
imoments
Image moments
Properties
R
Machine Vision Toolbox for MATLAB 112 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
For a binary image the zeroth moment is the number of non-zero pixels, or its
area.
This function does not perform connectivity it considers all non-zero pixels in
the image. If connected regions are required then use IBLOBS instead.
See also
RegionFeature, iblobs
imono
Convert color image to monochrome
Options
Notes
R
Machine Vision Toolbox for MATLAB 113 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
imorph
Morphological neighbourhood processing
out = imorph(im, se, op) is the image im after morphological processing with the
operator op and structuring element se.
The structuring element se is a small matrix with binary values that indicate which
elements of the template window are used in the operation.
The operation op is:
min minimum value over the structuring element
max maximum value over the structuring element
diff maximum - minimum value over the structuring element
plusmin the minimum of the pixel value and the pixelwise sum of the structuring element and
source neighbourhood.
out = imorph(im, se, op, edge) as above but performance of edge pixels can be con-
trolled. The value of edge is:
border the border value is replicated (default)
none pixels beyond the border are not included in the window
trim output is not computed for pixels where the structuring element crosses the image
border, hence output image had reduced dimensions.
wrap the image is assumed to wrap around, left to right, top to bottom.
Notes
Is a MEX file.
Performs greyscale morphology.
The structuring element should have an odd side length.
For binary image min = EROSION, max = DILATION.
The plusmin operation can be used to compute the distance transform.
The input can be logical, uint8, uint16, float or double, the output is always
double
R
Machine Vision Toolbox for MATLAB 114 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
imser
Maximally stable extremal regions
Options
Example
im = iread(castle_sign2.png, grey, double);
[label,n] = imser(im, light);
idisp(label)
Notes
Reference
R
Machine Vision Toolbox for MATLAB 115 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
ithresh, igraphseg
inormhist
Histogram normalization
Notes
See also
ihist
intgimage
Compute integral image
Examples
Create integral images for sum of pixel squared values over rectangular regions
i = intimage(im.2);
R
Machine Vision Toolbox for MATLAB 116 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
iisum
invcamcal
camera calibration
c = invcamcal(C)
Decompose, or invert, a 3x4camera calibration matrix C.
The result is a camera object with the following parameters set:
f
sx, sy (with sx=1)
(u0, v0) principal point
Tcam is the homog xform of the world origin wrt camera
iopen
Morphological opening
out = iopen(im, se, options) is the image im after morphological opening with the
structuring element se. This is a morphological erosion followed by dilation.
out = iopen(im, se, n, options) as above but the structuring element se is applied n
times, that is n erosions followed by n dilations.
Notes
For binary image an opening operation can be used to eliminate small white
noise regions.
It is cheaper to apply a smaller structuring element multiple times than one large
one, the effective structuring element is the Minkowski sum of the structuring
element with itself n times.
R
Machine Vision Toolbox for MATLAB 117 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
ipad
Pad an image with constants
out = ipad(im, sides, n) is a padded version of the image im with a block of NaN
values n pixels wide on the sides of im as specified by sides.
out = ipad(im, sides, n, v) as above but pads with pixels of value v.
sides is a string containing one or more of the characters:
t top
b bottom
l left
r right
Examples
Add a band of zero pixels 20 pixels high across the top of the image:
ipad(im, t, 20, 0)
Add a band of white pixels 10 pixels wide on all sides of the image:
ipad(im, tblr, 10, 255)
Notes
R
Machine Vision Toolbox for MATLAB 118 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ipaste
Paste an image into an image
out = ipaste(im, im2, p, options) is the image im with the subimage im2 pasted in at
the position p=[U,V].
Options
centre The pasted image is centred at p, otherwise p is the top-left corner of the subimage in
im (default)
zero the coordinates of p start at zero, by default 1 is assumed
set im2 overwrites the pixels in im (default)
add im2 is added to the pixels in im
mean im2 is set to the mean of pixel values in im2 and im
Notes
See also
iline
ipixswitch
Pixelwise image merge
out = ipixswitch(mask, im1, im2) is an image where each pixel is selected from the
corresponding pixel in im1 or im2 according to the corresponding pixel values in mask.
If the element of mask is zero im1 is selected, otherwise im2 is selected.
im1 or im2 can contain a color descriptor which is one of:
A scalar value corresponding to a greyscale
A 3-vector corresponding to a color value
A string containing the name of a color which is found using COLORNAME.
ipixswitch(mask, im1, im2) as above but the result is displayed.
R
Machine Vision Toolbox for MATLAB 119 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Example
The result is a uint8 image since both arguments are uint8 images.
a = ipixswitch(im>120, im, [1 0 0]);
The result is a double precision image since the color specification is a double.
a = ipixswitch(im>120, im, red);
The result is a double precision image since the result of colorname is a double preci-
sion 3-vector.
Notes
im1, im2 and mask must all have the same number of rows and columns.
If im1 and im2 are both greyscale then out is greyscale.
If either of im1 and im2 are color then out is color.
If either one image is double and one is integer then the integer image is first
converted to a double image.
See also
colorize, colorname
iprofile
Extract pixels along a line
v = iprofile(im, p1, p2) is a vector of pixel values extracted from the image im (H
W P ) between the points p1 (2 1) and p2 (2 1). v (N P ) has one row for
each point along the line and the row is the pixel value which will be a vector for a
multi-plane image.
[p,uv] = iprofile(im, p1, p2) as above but also returns the coordinates of the pixels
for each point along the line. Each row of uv is the pixel coordinate (u,v) for the
corresponding row of p.
R
Machine Vision Toolbox for MATLAB 120 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
bresenham, iline
ipyramid
Pyramidal image decomposition
Notes
See also
irank
Rank filter
out = irank(im, order, se) is a rank filtered version of im. Only pixels corresponding
to non-zero elements of the structuring element se are ranked and the orderth value in
rank becomes the corresponding output pixel value. The highest rank, the maximum,
is order=1.
R
Machine Vision Toolbox for MATLAB 121 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
out = irank(image, se, op, nbins) as above but the number of histogram bins can be
specified.
out = irank(image, se, op, nbins, edge) as above but the processing of edge pixels can
be controlled. The value of edge is:
border the border value is replicated (default)
none pixels beyond the border are not included in the window
trim output is not computed for pixels whose window crosses the border, hence output
image had reduced dimensions.
wrap the image is assumed to wrap around left-right, top-bottom.
Examples
5 5 median filter, 25 elements in the window, the median is the 12thn in rank
irank(im, 12, ones(5,5));
3 3 non-local maximum, find where a pixel is greater than its eight neighbours
se = ones(3,3); se(2,2) = 0;
im > irank(im, 1, se);
Notes
See also
iread
Read image from file
im = iread() presents a file selection GUI from which the user can select an image file
which is returned as a matrix. On subsequent calls the initial folder is as set on the last
call.
im = iread([], OPTIONS) as above but allows options to be specified.
R
Machine Vision Toolbox for MATLAB 122 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
im = iread(path, options) as above but the GUI is set to the folder specified by path.
If the path is not absolute it is searched for on the MATLAB search path.
im = iread(file, options) reads the specified image file and returns a matrix. If the path
is not absolute it is searched for on MATLAB search path.
The image can be greyscale or color in any of a wide range of formats supported by the
MATLAB IMREAD function.
Wildcards are allowed in file names. If multiple files match a 3D or 4D image is
returned where the last dimension is the number of images in the sequence.
Options
uint8 return an image with 8-bit unsigned integer pixels in the range 0 to 255
single return an image with single precision floating point pixels in the range 0 to 1.
double return an image with double precision floating point pixels in the range 0 to 1.
grey convert image to greyscale, if its color, using ITU rec 601
grey 709 convert image to greyscale, if its color, using ITU rec 709
gamma, G apply this gamma correction, either numeric or sRGB
reduce, R decimate image by R in both dimensions
roi, R apply the region of interest R to each image, where R=[umin umax; vmin vmax].
Examples
Notes
R
Machine Vision Toolbox for MATLAB 123 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
irectify
Rectify stereo image pair
Notes
The resulting image pair are epipolar aligned, equivalent to the view if the two
original camera axes were parallel.
Rectified images are required for dense stereo matching.
The effect of lense distortion is not removed, use the camera calibration toolbox
to unwarp each image prior to rectification.
The resulting images may have negative disparity.
Some output pixels may have no corresponding input pixels and will be set to
NaN.
See also
ireplicate
Expand image
R
Machine Vision Toolbox for MATLAB 124 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
idecimate, iscale
iroi
Extract region of interest
Notes
See also
idisp
irotate
Rotate image
out = irotate(im, angle, options) is a version of the image im that has been rotated
about its centre.
R
Machine Vision Toolbox for MATLAB 125 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
See also
iscale
isamesize
Automatic image trimming
out = isamesize(im1, im2) is an image derived from im1 that has the same dimensions
as im2. This is achieved by cropping and scaling.
out = isamesize(im1, im2, bias) as above but bias controls which part of the image is
cropped. bias=0.5 is symmetric cropping, bias<0.5 moves the crop window up or to
the left, while bias>0.5 moves the crop window down or to the right.
See also
R
Machine Vision Toolbox for MATLAB 126 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iscale
Scale an image
Options
See also
iscalemax
Scale space maxima
Notes
See also
iscalespace, ScalePointFeature
R
Machine Vision Toolbox for MATLAB 127 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iscalespace
Scale-space image sequence
Examples
Notes
See also
iscolor
Test for color image
iscolor(im) is true (1) if im is a color image, that is, it its third dimension is equal to
three.
R
Machine Vision Toolbox for MATLAB 128 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ishomog
Test if SE(3) homogeneous transformation
Notes
The first form is a fast, but incomplete, test for a transform is SE(3).
Does not work for the SE(2) case.
See also
isrot, isvec
ishomog2
Test if SE(2) homogeneous transformation
Notes
The first form is a fast, but incomplete, test for a transform in SE(3).
Does not work for the SE(3) case.
See also
R
Machine Vision Toolbox for MATLAB 129 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
isift
SIFT feature extractor
Options
Notes
R
Machine Vision Toolbox for MATLAB 130 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
The SIFT algorithm is covered by US Patent 6,711,293 (March 23, 2004) held
by the Univerity of British Columbia.
ISURF is a functional equivalent.
Reference
See also
isimilarity
Locate template in image
s = isimilarity(T, im) is an image where each pixel is the ZNCC similarity of the
template T (M M ) to the M M neighbourhood surrounding the corresonding
input pixel in im. s is same size as im.
s = isimilarity(T, im, metric) as above but the similarity metric is specified by the
function metric which can be any of @sad, @ssd, @ncc, @zsad, @zssd.
Example
The magnitude at each pixel indicates how well the template centred on that point
matches the surrounding pixels. The locations of the maxima are
[,p] = peak2(S, 1, npeaks, 5);
R
Machine Vision Toolbox for MATLAB 131 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
idisp(crowd)
References
Notes
For NCC and ZNCC the maximum in s corresponds to the most likely template
location. For SAD, SSD, ZSAD and ZSSD the minimum value corresponds to
the most likely location.
Similarity is not computed for those pixels where the template crosses the image
boundary, and these output pixels are set to NaN.
The ZNCC function is a MEX file and therefore the fastest
User provided similarity metrics can be used, the function accepts two regions
and returns a scalar similarity score.
See also
isize
Size of image
R
Machine Vision Toolbox for MATLAB 132 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
size
ismooth
Gaussian smoothing
out = ismooth(im, sigma) is the image im after convolution with a Gaussian kernel of
standard deviation sigma.
out = ismooth(im, sigma, options) as above but the options are passed to CONV2.
Options
Notes
By default (option full) the returned image is larger than the passed image.
Smooths all planes of the input image.
The Gaussian kernel has a unit volume.
If input image is integer it is converted to float, convolved, then converted back
to integer.
See also
iconv, kgauss
R
Machine Vision Toolbox for MATLAB 133 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
isobel
Sobel edge detector
out = isobel(im) is an edge image computed using the Sobel edge operator applied to
the image im. This is the norm of the vertical and horizontal gradients at each pixel.
The Sobel horizontal gradient kernel is:
| -1 0 1|
| -2 0 2|
| -1 0 1|
Notes
See also
isrot
Test if SO(3) rotation matrix
R
Machine Vision Toolbox for MATLAB 134 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
ishomog, isvec
isrot2
Test if SO(2) rotation matrix
Notes
See also
ishomog2, isvec
istereo
Stereo matching
R
Machine Vision Toolbox for MATLAB 135 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
[d,sim] = istereo(left, right, range, H, options) as above but returns sim which is
the same size as d and the elements are the peak matching score for the corresponding
elements of d. For the default matching metric ZNCC this varies between -1 (very bad)
to +1 (perfect).
[d,sim,dsi] = istereo(left, right, range, H, options) as above but returns dsi which is
the disparity space image (H W N ) where N=DMAX-DMIN+1. The Ith plane is
the similarity of IML to IMR shifted to the left by DMIN+I-1.
[d,sim,p] = istereo(left, right, range, H, options) if the interp option is given then
disparity is estimated to sub-pixel precision using quadratic interpolation. In this case
d is the interpolated disparity and p is a structure with elements A, B, dx. The interpo-
lation polynomial is s = Ad2 + Bd + C where s is the similarity score and d is disparity
relative to the integer disparity at which s is maximum. p.A and p.B are matrices the
same size as d whose elements are the per pixel values of the interpolation polynomial
coefficients. p.dx is the peak of the polynomial with respect to the integer disparity at
which s is maximum (in the range -0.5 to +0.5).
Options
metric, M string that specifies the similarity metric to use which is one of zncc (default), ncc,
ssd or sad.
interp enable subpixel interpolation and d contains non-integer values (default false)
vshift, V move the right image V pixels vertically with respect to left.
Example
References
Notes
R
Machine Vision Toolbox for MATLAB 136 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
The A term is high where the disparity function has a sharp peak.
Disparity and similarity score can be obtained from the disparity space image by
[sim,d] = max(dsi, [], 3)
See also
irectify, stdisp
istretch
Image normalization
out = istretch(im, options) is a normalized image in which all pixel values lie in the
range 0 to 1. That is, a linear mapping where the minimum value of im is mapped to 0
and the maximum value of im is mapped to 1.
Options
Notes
For an integer image the result is a double image in the range 0 to max value.
See also
inormhist
isurf
SURF feature extractor
R
Machine Vision Toolbox for MATLAB 137 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Example
Notes
R
Machine Vision Toolbox for MATLAB 138 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Reference
SURF: Speeded Up Robust Features, Herbert Bay, Andreas Ess, Tinne Tuytelaars,
Luc Van Gool, Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3,
pp. 346359, 2008
See also
isvec
Test if vector
Notes
Differs from MATLAB builtin function ISVECTOR, the latter returns true for
the case of a scalar, isvec does not.
Gives same result for row- or column-vector, ie. 3 1 or 1 3 gives true.
See also
ishomog, isrot
ithin
Morphological skeletonization
out = ithin(im) is the binary skeleton of the binary image im. Any non-zero region is
replaced by a network of single-pixel wide lines.
out = ithin(im,delay) as above but graphically displays each iteration of the skele-
tonization algorithm with a pause of delay seconds between each iteration.
R
Machine Vision Toolbox for MATLAB 139 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
References
See also
ithresh
Interactive image threshold
ithresh(im) displays the image im in a window with a slider which adjusts the binary
threshold.
ithresh(im, T) as above but the initial threshold is set to T.
im2 = ithresh(im) as above but returns the thresholded image after the done button
in the GUI is pressed.
[im2,T] = ithresh(im) as above but also returns the threshold value.
Notes
See also
idisp
R
Machine Vision Toolbox for MATLAB 140 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
itrim
Trim images
See also
homwarp, irectify
itriplepoint
Find triple points
out = itriplepoint(im) is a binary image where pixels are set if the corresponding
pixel in the binary image im is a triple point, that is where three single-pixel wide
line intersect. These are the Voronoi points in an image skeleton. Computed using the
hit-or-miss morphological operator.
References
R
Machine Vision Toolbox for MATLAB 141 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
ivar
Pixel window statistics
out = ivar(im, se, op) is an image where each output pixel is the specified statistic over
the pixel neighbourhood indicated by the structuring element se which should have odd
side lengths. The elements in the neighbourhood corresponding to non-zero elements
in se are packed into a vector on which the required statistic is computed.
The operation op is one of:
var variance
kurt Kurtosis or peakiness of the distribution
skew skew or asymmetry of the distribution
out = ivar(im, se, op, edge) as above but performance at edge pixels can be controlled.
The value of edge is:
border the border value is replicated (default)
none pixels beyond the border are not included in the window
trim output is not computed for pixels whose window crosses the border, hence output
image had reduced dimensions.
wrap the image is assumed to wrap around
Notes
Is a MEX file.
The structuring element should have an odd side length.
The input can be logical, uint8, uint16, float or double, the output is always
double
See also
irank, iwindow
R
Machine Vision Toolbox for MATLAB 142 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
iwindow
Generalized spatial operator
out = iwindow(im, se, func) is an image where each pixel is the result of applying the
function func to a neighbourhood centred on the corresponding pixel in im. The neigh-
bourhood is defined by the size of the structuring element se which should have odd
side lengths. The elements in the neighbourhood corresponding to non-zero elements
in se are packed into a vector (in column order from top left) and passed to the specified
function handle func. The return value becomes the corresponding pixel value in out.
out = iwindow(image, se, func, edge) as above but performance of edge pixels can be
controlled. The value of edge is:
border the border value is replicated (default)
none pixels beyond the border are not included in the window
trim output is not computed for pixels whose window crosses the border, hence output
image had reduced dimensions.
wrap the image is assumed to wrap around
Example
Notes
Is a MEX file.
The structuring element should have an odd side length.
Is slow since the function func must be invoked once for every output pixel.
The input can be logical, uint8, uint16, float or double, the output is always
double
See also
ivar, irank
R
Machine Vision Toolbox for MATLAB 143 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
kcircle
Circular structuring element
Notes
If R is a 2-element vector the result is an annulus of ones, and the two numbers
are interpretted as inner and outer radii.
See also
kdgauss
Derivative of Gaussian kernel
Notes
See also
R
Machine Vision Toolbox for MATLAB 144 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
kdog
Difference of Gaussian kernel
Notes
This kernel is similar to the Laplacian of Gaussian and is often used as an effi-
cient approximation.
See also
kgauss
Gaussian kernel
Notes
See also
R
Machine Vision Toolbox for MATLAB 145 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
klaplace
Laplacian kernel
Notes
See also
ilaplace, iconv
klog
Laplacian of Gaussian kernel
See also
kmeans
K-means clustering
R
Machine Vision Toolbox for MATLAB 146 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
organized into k clusters based on Euclidean distance from cluster centres C (Dk). L
is a vector (N 1) whose elements indicates which cluster the corresponding element
of x belongs to.
[L,C] = kmeans(x, k, c0) as above but the initial clusters c0 (D k) is given and
column I is the initial estimate of the centre of cluster I.
L = kmeans(x, C) is similar to above but the clustering step is not performed, it is
assumed to have been completed previously. C (D k) contains the cluster centroids
and L (N 1) indicates which cluster the corresponding element of x is closest to.
Options
random initial cluster centres are chosen randomly from the set of data points x (default)
spread initial cluster centres are chosen randomly from within the hypercube spanned by x.
Reference
ksobel
Sobel edge detector
Notes
See also
isobel
R
Machine Vision Toolbox for MATLAB 147 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ktriangle
Triangular kernel
Examples
>> ktriangle(3)
ans =
|0 1 0|
|0 1 0|
|1 1 1|
See also
kcircle
lambda2rg
RGB chromaticity coordinates
References
See also
cmfrgb, lambda2xy
R
Machine Vision Toolbox for MATLAB 148 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
lambda2xy
= LAMBDA2XY(LAMBDA) is the xy-chromaticity coordinate
(1 2) for
References
See also
cmfxyz, lambda2rg
LineFeature
Line feature class
Methods
plot Plot the line segment
seglength Determine length of line segment
display Display value
char Convert value to string
Properties
R
Machine Vision Toolbox for MATLAB 149 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Note
See also
LineFeature.LineFeature
Create a line feature object
LineFeature.char
Convert to string
LineFeature.display
Display value
R
Machine Vision Toolbox for MATLAB 150 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
This method is invoked implicitly at the command line when the result of an
expression is a LineFeature object and the command has no trailing semicolon.
See also
LineFeature.char
LineFeature.plot
Plot line
Notes
LineFeature.points
Return points on line segments
p = L.points(edge) is the set of points that lie along the line in the edge image edge
are determined.
See also
icanny
LineFeature.seglength
Compute length of line segments
The Hough transform identifies lines but cannot determine their length. This method
examines the edge pixels in the original image and determines the longest stretch of
non-zero pixels along the line.
R
Machine Vision Toolbox for MATLAB 151 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
l2 = L.seglength(edge, gap) is a copy of the line feature object with the property length
updated to the length of the line (pixels). Small gaps, less than gap pixels are tolerated.
l2 = L.seglength(edge) as above but the maximum allowable gap is 5 pixels.
See also
icanny
loadspectrum
Load spectrum data
Notes
The file is assumed to have its first column as wavelength in metres, the remaind-
ing columns are linearly interpolated and returned as columns of s.
The files are kept in the private folder inside the MVTB folder.
References
luminos
Photopic luminosity function
R
Machine Vision Toolbox for MATLAB 152 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Luminosity has units of lumens which are the intensity with which wavelengths are
perceived by the light-adapted human eye.
References
See also
rluminos
mkcube
Create cube
Options
facepoint Add an extra point in the middle of each face, in this case the returned value is 3 14
(8 vertices + 6 face centres).
centre, C The cube is centred at C (3 1) not the origin
T, T The cube is arbitrarily transformed by the homogeneous transform T
edge Return a set of cube edges in MATLAB mesh format rather than points.
See also
cylinder, sphere
R
Machine Vision Toolbox for MATLAB 153 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
mkgrid
Create grid of points
Options
T, T the homogeneous transform T is applied to all points, allowing the plane to be trans-
lated or rotated.
mlabel
for mplot style graph
morphdemo
Demonstrate morphology using animation
morphdemo(im, se, options) displays an animation to show the principles of the math-
ematical morphology operations dilation or erosion. Two windows are displayed side
by side, input binary image on the left and output image on the right. The structuring
element moves over the input image and is colored red if the result is zero, else blue.
Pixels in the output image are initially all grey but change to black or white as the
structuring element moves.
out = morphdemo(im, se, options) as above but returns the output image.
R
Machine Vision Toolbox for MATLAB 154 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
See also
Movie
Class to read movie file
A concrete subclass of ImageSource that acquires images from a web camera built by
Axis Communications (www.axis.com).
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
Properties
See also
ImageSource, video
SEE ALSO: Video
R
Machine Vision Toolbox for MATLAB 155 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Movie.Movie
Image source constructor
m = Movie(file, options) is an Movie object that returns frames from the movie file
file.
Options
Movie.char
Convert to string
M.char() is a string representing the state of the movie object in human readable form.
Movie.close
Close the image source
Movie.grab
Acquire next frame from movie
R
Machine Vision Toolbox for MATLAB 156 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
mplot
time series data
mplot(y, options) plots the time series data y(N M ) in multiple subplots. The first
column is assumed to be time, so M-1 plots are produced.
mplot(T, y, options) plots the time series data y(N M ) in multiple subplots. Time
is provided explicitly as the first argument so M plots are produced.
mplot(s, options) as above but s is a structure. Each field is assumed to be a time series
which is plotted. Time is taken from the field called t.
mplot(w, options) as above but w is a structure created by the Simulink write to
workspace block where the save format is set to Structure with time. Each field
in the signals substructure is plotted.
mplot(R, options) as above but R is a Simulink.SimulationOutput object returned by
the Simulink sim() function.
Options
col, C Select columns to plot, a boolean of length M-1 or a list of column indices in the range
1 to M-1
label, L Label the axes according to the cell array of strings L
date Add a datestamp in the top right corner
Notes
In all cases a simple GUI is created which is invoked by a right click anywhere
on one of the plots. The supported options are:
R
Machine Vision Toolbox for MATLAB 157 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
mpq
Image moments
m = mpq(im, p, q) is the PQth moment of the image im. That is, the sum of
I(x,y).xp .yq .
See also
mpq poly
Polygon moments
m = mpq poly(v, p, q) is the PQth moment of the polygon with vertices described by
the columns of v.
Notes
The points must be sorted such that they follow the perimeter in sequence (counter-
clockwise).
If the points are clockwise the moments will all be negated, so centroids will be
still be correct.
If the first and last point in the list are the same, they are considered to be a single
vertex.
See also
mtools
simple/useful tools to all windows in figure
R
Machine Vision Toolbox for MATLAB 158 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
multidfprintf
Print formatted text to multiple streams
Notes
Example
% Create and open a new example file:
fid = fopen(exampleFile.txt,w+);
% Write something to the file and the console simultaneously:
multidfprintf([1 FID],% s % d % d % d% Close the file:
fclose(FID);
Authors
See also
fprintf, sprintf
ncc
Normalized cross correlation
m = ncc(i1, i2) is the normalized cross-correlation between the two equally sized image
patches i1 and i2. The result m is a scalar in the interval -1 (non match) to 1 (perfect
match) that indicates similarity.
R
Machine Vision Toolbox for MATLAB 159 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
niblack
Adaptive thresholding
T = niblack(im, k, w2) is the per-pixel (local) threshold to apply to image im. T has
the same dimensions as im. The threshold at each pixel is a function of the mean and
standard deviation computed over a W W window, where W=2*w2+1.
[T,m,s] = niblack(im, k, w2) as above but returns the per-pixel mean m and standard
deviation s.
Example
t = niblack(im, -0.2, 20);
idisp(im >= t);
Notes
Reference
R
Machine Vision Toolbox for MATLAB 160 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
otsu, ithresh
npq
Normalized central image moments
m = npq(im, p, q) is the PQth normalized central moment of the image im. That is
UPQ(im,p,q)/MPQ(im,0,0).
Notes
See also
npq poly
Normalized central polygon moments
m = npq poly(v, p, q) is the PQth normalized central moment of the polygon with
vertices described by the columns of v.
Notes
The points must be sorted such that they follow the perimeter in sequence (counter-
clockwise).
If the points are clockwise the moments will all be negated, so centroids will be
still be correct.
If the first and last point in the list are the same, they are considered as a single
vertex.
The normalized central moments are invariant to translation and scale.
R
Machine Vision Toolbox for MATLAB 161 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
numcols
Number of columns in matrix
Notes
See also
numrows, size
numrows
Number of rows in matrix
Notes
See also
numcols, size
R
Machine Vision Toolbox for MATLAB 162 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
optparse
Standard option parser for Toolbox functions
then if neither of this, that or other are specified then opt.choose <- []
If neither of no or yes are specified then opt.select <- 1.
Note:
That the enumerator names must be distinct from the field names.
That only one value can be assigned to a field, if multiple values
are required they must be converted to a cell array.
To match an option that starts with a digit, prefix it with d , so the field d 3d
matches the option 3d.
The allowable options are specified by the names of the fields in the structure opt. By
default if an option is given that is not a field of opt an error is declared.
Sometimes it is useful to collect the unassigned options and this can be achieved using
a second output argument
[opt,arglist] = tb_optparse(opt, varargin);
which is a cell array of all unassigned arguments in the order given in varargin.
R
Machine Vision Toolbox for MATLAB 163 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
The return structure is automatically populated with fields: verbose and debug. The
following options are automatically parsed:
verbose sets opt.verbose <- true
verbose=2 sets opt.verbose <- 2 (very verbose)
verbose=3 sets opt.verbose <- 3 (extremeley verbose)
verbose=4 sets opt.verbose <- 4 (ridiculously verbose)
debug, N sets opt.debug <- N
setopt, S sets opt <- S
showopt displays opt and arglist
otsu
Threshold selection
Example
t = otsu(im);
idisp(im >= t);
Options
Notes
Reference
A Threshold Selection Method from Gray-Level Histograms, N. otsu IEEE Trans. Sys-
tems, Man and Cybernetics Vol SMC-9(1), Jan 1979, pp 62-66
An improved method for image thresholding on the valley-emphasis method H-F Ng,
D. Jargalsaikhan etal Signal and Info Proc. Assocn. Annual Summit and Conf (AP-
SIPA) 2013 pp 1-4
R
Machine Vision Toolbox for MATLAB 164 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
niblack, ithresh
peak
Find peaks in vector
Options
Notes
A maxima is defined as an element that larger than its two neighbours. The first
and last element will never be returned as maxima.
To find minima, use peak(-V).
The interp options fits points in the neighbourhood about the peak with an Mth
order polynomial and its peak position is returned. Typically choose M to be
odd. In this case xp will be non-integer.
See also
peak2
R
Machine Vision Toolbox for MATLAB 165 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
peak2
Find peaks in a matrix
Options
Notes
A maxima is defined as an element that larger than its eight neighbours. Edges
elements will never be returned as maxima.
To find minima, use peak2(-V).
The interp options fits points in the neighbourhood about the peak with a paraboloid
and its peak position is returned. In this case ij will be non-integer.
See also
peak, sub2ind
PGraph
Graph class
R
Machine Vision Toolbox for MATLAB 166 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
Display
Matrix representations
R
Machine Vision Toolbox for MATLAB 167 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Examples
g = PGraph();
g.add_node([1 2]); % add node 1
g.add_node([3 4]); % add node 1
g.add_node([1 3]); % add node 1
g.add_edge(1, 2); % add edge 1-2
g.add_edge(2, 3); % add edge 2-3
g.add_edge(1, 3); % add edge 1-3
g.plot()
Notes
PGraph.PGraph
Graph class constructor
R
Machine Vision Toolbox for MATLAB 168 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
distance, M Use the distance metric M for path planning which is either Euclidean (default) or
SE2.
verbose Specify verbose operation
Notes
PGraph.add edge
Add an edge
E = G.add edge(v1, v2) adds a directed edge from vertex id v1 to vertex id v2, and
returns the edge id E. The edge cost is the distance between the vertices.
E = G.add edge(v1, v2, C) as above but the edge cost is C.
Notes
See also
PGraph.add node
Add a node
v = G.add node(x) adds a node/vertex with coordinate x (D1) and returns the integer
node id v.
R
Machine Vision Toolbox for MATLAB 169 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
v = G.add node(x, v2) as above but connected by a directed edge from vertex v to
vertex v2 with cost equal to the distance between the vertices.
v = G.add node(x, v2, C) as above but the added edge has cost C.
Notes
See also
PGraph.adjacency
Adjacency matrix of graph
Notes
Matrix is symmetric.
Eigenvalues of a are real and are known as the spectrum of the graph.
The element a(I,J) can be considered the number of walks of one edge from
vertex I to vertex J (either zero or one). The element (I,J) of aN are the number
of walks of length N from vertex I to vertex J.
See also
PGraph.Astar
path finding
path = G.Astar(v1, v2) is the lowest cost path from vertex v1 to vertex v2. path is a
list of vertices starting with v1 and ending v2.
[path,C] = G.Astar(v1, v2) as above but also returns the total cost of traversing path.
R
Machine Vision Toolbox for MATLAB 170 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
References
See also
PGraph.goal, PGraph.path
PGraph.char
Convert graph to string
PGraph.clear
Clear the graph
PGraph.closest
Find closest vertex
See also
PGraph.distances
R
Machine Vision Toolbox for MATLAB 171 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.component
Graph component
PGraph.connectivity
Graph connectivity
PGraph.coord
Coordinate of node
PGraph.cost
Cost of edge
PGraph.data
Get user data for node
u = G.data(v) gets the user data of vertex v which can be of any type such as a number,
struct, object or cell array.
R
Machine Vision Toolbox for MATLAB 172 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
PGraph.setdata
PGraph.degree
Degree matrix of graph
See also
PGraph.display
Display graph
G.display() displays a compact human readable representation of the state of the graph
including the number of vertices, edges and components.
See also
PGraph.char
PGraph.distance
Distance between vertices
d = G.distance(v1, v2) is the geometric distance between the vertices v1 and v2.
See also
PGraph.distances
R
Machine Vision Toolbox for MATLAB 173 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.distances
Distances from point to vertices
Notes
See also
PGraph.closest
PGraph.edgedir
Find edge direction
d = G.edgedir(v1, v2) is the direction of the edge from vertex id v1 to vertex id v2.
If we add an edge from vertex 3 to vertex 4
g.add_edge(3, 4)
then
g.edgedir(3, 4)
is positive, and
g.edgedir(4, 3)
is negative.
See also
R
Machine Vision Toolbox for MATLAB 174 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.edges
Find edges given vertex
See also
PGraph.edgedir
PGraph.get.n
Number of vertices
See also
PGraph.ne
PGraph.get.nc
Number of components
See also
PGraph.component
PGraph.get.ne
Number of edges
R
Machine Vision Toolbox for MATLAB 175 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
PGraph.n
PGraph.goal
Set goal node
G.goal(vg) computes the cost of reaching every vertex in the graph connected to the
goal vertex vg.
Notes
Combined with G.path performs a breadth-first search for paths to the goal.
See also
PGraph.highlight component
Highlight a graph component
G.highlight component(C, options) highlights the vertices that belong to graph com-
ponent C.
Options
See also
R
Machine Vision Toolbox for MATLAB 176 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.highlight edge
Highlight a node
G.highlight edge(v1, v2) highlights the edge between vertices v1 and v2.
G.highlight edge(E) highlights the edge with id E.
Options
See also
PGraph.highlight node
Highlight a node
Options
See also
PGraph.highlight path
Highlight path
G.highlight path(p, options) highlights the path defined by vector p which is a list of
vertex ids comprising the path.
R
Machine Vision Toolbox for MATLAB 177 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
See also
PGraph.incidence
Incidence matrix of graph
See also
PGraph.laplacian
Laplacian matrix of graph
Notes
L is always positive-semidefinite.
L has at least one zero eigenvalue.
The number of zero eigenvalues is the number of connected components in the
graph.
See also
R
Machine Vision Toolbox for MATLAB 178 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.neighbours
Neighbours of a vertex
n = G.neighbours(v) is a vector of ids for all vertices which are directly connected
neighbours of vertex v.
[n,C] = G.neighbours(v) as above but also returns a vector C whose elements are the
edge costs of the paths corresponding to the vertex ids in n.
PGraph.neighbours d
Directed neighbours of a vertex
n = G.neighbours d(v) is a vector of ids for all vertices which are directly connected
neighbours of vertex v. Elements are positive if there is a link from v to the node, and
negative if the link is from the node to v.
[n,C] = G.neighbours d(v) as above but also returns a vector C whose elements are
the edge costs of the paths corresponding to the vertex ids in n.
PGraph.path
Find path to goal node
p = G.path(vs) is a vector of vertex ids that form a path from the starting vertex vs to
the previously specified goal. The path includes the start and goal vertex id.
To compute path to goal vertex 5
g.goal(5);
Notes
R
Machine Vision Toolbox for MATLAB 179 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
PGraph.goal, PGraph.Astar
PGraph.pick
Graphically select a vertex
v = G.pick() is the id of the vertex closest to the point clicked by the user on a plot of
the graph.
See also
PGraph.plot
PGraph.plot
Plot the graph
G.plot(opt) plots the graph in the current figure. Nodes are shown as colored circles.
Options
R
Machine Vision Toolbox for MATLAB 180 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PGraph.setcost
Set cost of edge
PGraph.setdata
Set user data for node
G.setdata(v, u) sets the user data of vertex v to u which can be of any type such as a
number, struct, object or cell array.
See also
PGraph.data
PGraph.vertices
Find vertices given edge
pickregion
Pick a rectangular region of a figure using mouse
[p1,p2] = pickregion() initiates a rubberband box at the current click point and ani-
mates it so long as the mouse button remains down. Returns the first and last coordi-
nates in axis units.
Options
R
Machine Vision Toolbox for MATLAB 181 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
Effectively a replacement for the builtin rbbox function which draws the box in
the wrong location on my Macs external monitor.
Author
plot2
Plot trajectories
plot2(p) plots a line with coordinates taken from successive rows of p. p can be N 2
or N 3.
If p has three dimensions, ie. N 2 M or N 3 M then the M trajectories are
overlaid in the one plot.
plot2(p, ls) as above but the line style arguments ls are passed to plot.
See also
plot
plot arrow
Draw an arrow
Options
All options are passed through to arrow3. Pass in a single character MATLAB color-
spec (eg. r) to set the color.
R
Machine Vision Toolbox for MATLAB 182 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
arrow3
plot box
a box
plot box(b, ls) draws a box defined by b=[XL XR; YL YR] on the current plot with
optional MATLAB linestyle options ls.
plot box(x1,y1, x2,y2, ls) draws a box with corners at (x1,y1) and (x2,y2), and optional
MATLAB linestyle options ls.
plot box(centre, P, size, W, ls) draws a box with center at P=[X,Y] and with dimen-
sions W=[WIDTH HEIGHT].
plot box(topleft, P, size, W, ls) draws a box with top-left at P=[X,Y] and with di-
mensions W=[WIDTH HEIGHT].
Notes
See also
plot circle
Draw a circle
plot circle(C, R, options) draws a circle on the current plot with centre C=[X,Y] and
radius R. If C=[X,Y,Z] the circle is drawn in the XY-plane at height Z.
H = plot circle(C, R, options) as above but return handles. For multiple circles H is a
vector of handles, one per circle.
If C (2 N ) then N circles are drawn and H is N 1. If R (1 1) then all circles have
the same radius or else R (1 N ) to specify the radius of each circle.
R
Machine Vision Toolbox for MATLAB 183 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
See also
plot ellipse
Draw an ellipse or ellipsoid
plot ellipse(a, options) draws an ellipse defined by XAX = 0 on the current plot,
centred at the origin.
plot ellipse(a, C, options) as above but centred at C=[X,Y]. If C=[X,Y,Z] the ellipse
is parallel to the XY plane but at height Z.
H = plot ellipse(a, C, options) as above but return graphic handle.
Options
Notes
R
Machine Vision Toolbox for MATLAB 184 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
plot ellipse inv(a, options) draws an ellipse defined by X.inv(a).X = 0 on the current
plot, centred at the origin.
plot ellipse inv(a, C, options) as above but centred at C=[X,Y]. If C=[X,Y,Z] the
ellipse is parallel to the XY plane but at height Z.
H = plot ellipse inv(a, C, options) as above but return graphic handle.
Options
Notes
For the case where the inverse of ellipse parameters are known, perhaps an in-
verse covariance matrix.
If a (2 2) draw an ellipse, else if a(3 3) draw an ellipsoid.
The ellipse is added to the current plot.
See also
R
Machine Vision Toolbox for MATLAB 185 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
plot homline
Draw a homogeneous
plot homline(L, ls) draws a line in the current plot L.X = 0 where L (3 1). The
current axis limits are used to determine the endpoints of the line. MATLAB line
specification ls can be set. If L (3 N ) then N lines are drawn, one per column.
H = plot homline(L, ls) as above but returns a vector of graphics handles for the lines.
Notes
See also
plot point
a feature point
plot point(p, options) adds point markers to the current plot, where p (2 N ) and
each column is the point coordinate.
Options
Examples
R
Machine Vision Toolbox for MATLAB 186 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
plot_point(P, *);
Notes
See also
plot, text
plot poly
Draw a polygon
options
Notes
See also
R
Machine Vision Toolbox for MATLAB 187 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
plot sphere
Draw sphere
plot sphere(C, R, ls) draws spheres in the current plot. C is the centre of the sphere
(3 1), R is the radius and ls is an optional MATLAB color spec, either a letter or a
3-vector.
H = plot sphere(C, R, color) as above but returns the handle(s) for the spheres.
H = plot sphere(C, R, color, alpha) as above but alpha specifies the opacity of the
sphere were 0 is transparant and 1 is opaque. The default is 1.
If C (3 N ) then N sphhere are drawn and H is N 1. If R (1 1) then all spheres
have the same radius or else R (1 N ) to specify the radius of each sphere.
Example
NOTES
plotp
Plot trajectories
plotp(p) plots a set of points p, which by Toolbox convention are stored one per col-
umn. p can be N 2 or N 3. By default a linestyle of bx is used.
plotp(p, ls) as above but the line style arguments ls are passed to plot.
R
Machine Vision Toolbox for MATLAB 188 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
plot, plot2
Plucker
Plucker coordinate class
Methods
line Return Plucker line coordinates (1 6)
side Side operator
Operators
Notes
Plucker.Plucker
Create Plucker object
p = Plucker(p1, p2) create a Plucker object that represents the line joining the 3D
points p1 (3 1) and p2 (3 1).
Plucker.char
Convert to string
R
Machine Vision Toolbox for MATLAB 189 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
Plucker.display
Plucker.display
Display parameters
Notes
This method is invoked implicitly at the command line when the result of an
expression is a Plucker object and the command has no trailing semicolon.
See also
Plucker.char
Plucker.line
Plucker liner coordinates
Plucker.mtimes
Plucker composition
Plucker.or
P2 is the side operator which is zero whenever
R
Machine Vision Toolbox for MATLAB 190 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Plucker.side
Side operator
SIDE(p1, p2) is the side operator which is zero whenever the lines p1 and p2 intersect
or are parallel.
pnmfilt
Pipe image through PNM utility
out = pnmfilt(cmd) runs the external program given by the string cmd and the output
(assumed to be PNM format) is returned as out.
out = pnmfilt(cmd, im) pipes the image im through the external program given by the
string cmd and the output is returned as out. The external program must accept and
return images in PNM format.
Examples
im = pnmfilt(ppmforge -cloud);
im = pnmfilt(pnmrotate 30, lena);
Notes
Provides access to a large number of Unix command line utilities such as Im-
ageMagick and netpbm.
The input image is passed as stdin, the output image is assumed to come from
stdout.
MATLAB doesnt support i/o to pipes so the image is written to a temporary file,
the command run to another temporary file, and that is read into MATLAB.
See also
pgmfilt, iread
R
Machine Vision Toolbox for MATLAB 191 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PointFeature
PointCorner feature object
Methods
plot Plot feature position
distance Descriptor distance
ncc Descriptor similarity
uv Return feature coordinate
display Display value
char Convert value to string
Properties
u horizontal coordinate
v vertical coordinate
strength feature strength
descriptor feature descriptor (vector)
Properties of a vector of PointFeature objects are returned as a vector. If F is a vec-
tor (N 1) of PointFeature objects then F.u is a 2 N matrix with each column the
corresponding point coordinate.
See also
PointFeature.PointFeature
Create a point feature object
R
Machine Vision Toolbox for MATLAB 192 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
PointFeature.char
Convert to string
PointFeature.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a PointFeature object and the command has no trailing semicolon.
See also
PointFeature.char
PointFeature.distance
Distance between feature descriptors
d = F.distance(f1) is the distance between feature descriptors, the norm of the Eu-
clidean distance.
If F is a vector then d is a vector whose elements are the distance between the corre-
sponding element of F and f1.
PointFeature.match
Match point features
R
Machine Vision Toolbox for MATLAB 193 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
[m,C] = F.match(f2, options) as above but returns a correspodence matrix where each
row contains the indices of corresponding features in F and f2 respectively.
Options
See also
FeatureMatch
PointFeature.ncc
Feature descriptor similarity
s = F.ncc(f1) is the similarty between feature descriptors which is a scalar in the interval
-1 to 1, where 1 is perfect match.
If F is a vector then D is a vector whose elements are the distance between the corre-
sponding element of F and f1.
PointFeature.plot
Plot feature
polydiff
Differentiate a polynomial
R
Machine Vision Toolbox for MATLAB 194 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
polyval
Polygon
Polygon class
Methods
plot Plot polygon
area Area of polygon
moments Moments of polygon
centroid Centroid of polygon
perimeter Perimter of polygon
transform Transform polygon
inside Test if points are inside polygon
intersection Intersection of two polygons
difference Difference of two polygons
union Union of two polygons
xor Exclusive or of two polygons
display print the polygon in human readable form
char convert the polgyon to human readable string
Properties
Notes
R
Machine Vision Toolbox for MATLAB 195 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Acknowledgement
The methods: inside, intersection, difference, union, and xor are based on code written
by:
Kirill K. Pankratov, kirill@plume.mit.edu, http://puddle.mit.edu/ glenn/kirill/saga.html
and require a licence. However the author does not respond to email regarding the
licence, so use with care, and modify with acknowledgement.
Polygon.Polygon
Polygon class constructor
Polygon.area
Area of polygon
See also
Polygon.moments
Polygon.centroid
Centroid of polygon
See also
Polygon.moments
R
Machine Vision Toolbox for MATLAB 196 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Polygon.char
String representation
Polygon.difference
Difference of polygons
Notes
Polygon.display
Display polygon
See also
Polygon.char
Polygon.inside
Test if points are inside polygon
R
Machine Vision Toolbox for MATLAB 197 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Polygon.intersect
Intersection of polygon with list of polygons
Polygon.intersect line
Intersection of polygon and line segment
i = P.intersect line(L) is the intersection points of a polygon P with the line segment
L=[x1 x2; y1 y2]. i (2 N ) has one column per intersection, each column is [x y].
Polygon.intersection
Intersection of polygons
Notes
Polygon.moments
Moments of polygon
See also
R
Machine Vision Toolbox for MATLAB 198 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Polygon.perimeter
Perimeter of polygon
Polygon.plot
Draw polygon
Notes
Polygon.transform
Transform polygon vertices
Polygon.union
Union of polygons
Notes
If these polygons are not intersecting, returns a polygon with vertices of both
polygons separated by NaNs.
If the result P is not simply connected (such as a polygon with a hole) the re-
sulting contour consist of counter- clockwise outer boundary and one or more
clock-wise inner boundaries around holes.
R
Machine Vision Toolbox for MATLAB 199 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Polygon.xor
Exclusive or of polygons
Notes
If these polygons are not intersecting, returns a polygon with vertices of both
polygons separated by NaNs.
If the result P is not simply connected (such as a polygon with a hole) the re-
sulting contour consist of counter- clockwise outer boundary and one or more
clock-wise inner boundaries around holes.
radgrad
Radial gradient
[gr,gt] = radgrad(im) is the radial and tangential gradient of the image im. At each
pixel the image gradient vector is resolved into the radial and tangential directions.
[gr,gt] = radgrad(im, centre) as above but the centre of the image is specified as
centre=[X,Y] rather than the centre pixel of im.
radgrad(im) as above but the result is displayed graphically.
See also
isobel
randinit
Reset random number generator
R
Machine Vision Toolbox for MATLAB 200 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
randstream
ransac
Random sample and consensus
Options
Model function
out = func(R) is the function passed to RANSAC and it must accept a single argument
R which is a structure:
R.cmd the operation to perform which is either (string)
R.debug display whats going on (logical)
R.x data to work on, N point pairs (6 N )
R.t threshold (1 1)
R.theta estimated quantity to test (3 3)
R.misc private data (cell array)
The function return value is also a structure:
R
Machine Vision Toolbox for MATLAB 201 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
References
m.A. Fishler and R.C. Boles. Random sample concensus: A paradigm for
model fitting with applications to image analysis and automated cartography.
Comm. Assoc. Comp, Mach., Vol 24, No 6, pp 381-395, 1981
Richard Hartley and Andrew Zisserman. Multiple View Geometry in Computer
Vision. pp 101-113. Cambridge University Press, 2001
Author
Peter Kovesi School of Computer Science & Software Engineering The University of
Western Australia pk at csse uwa edu au http://www.csse.uwa.edu.au/ pk
R
Machine Vision Toolbox for MATLAB 202 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
fmatrix, homography
Ray3D
Ray in 3D space
This object represents a ray in 3D space, defined by a point on the ray and a direction
unit-vector.
Methods
intersect Intersection of ray with plane or ray
closest Closest distance between point and ray
char Ray parameters as human readable string
display Display ray parameters in human readable form
Properties
Notes
Ray3D.Ray3D
Ray constructor
R
Machine Vision Toolbox for MATLAB 203 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Ray3D.char
Convert to string
Ray3D.closest
Closest distance between point and ray
Ray3D.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a Ray3D object and the command has no trailing semicolon.
See also
Ray3D.char
Ray3D.intersect
Intersetion of ray with line or plane
x = R.intersect(r2) is the point on R that is closest to the ray r2. If R is a vector then
then x has multiple columns, corresponding to the intersection of R(i) with r2.
[x,E] = R.intersect(r2) as above but also returns the closest distance between the rays.
R
Machine Vision Toolbox for MATLAB 204 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
x = R.intersect(p) returns the point of intersection between the ray R and the plane
p=(a,b,c,d) where aX + bY + cZ + d = 0. If R is a vector then x has multiple columns,
corresponding to the intersection of R(i) with p.
RegionFeature
Region feature class
Methods
boundary Return the boundary as a list
box Return the bounding box
plot Plot the centroid
plot boundary Plot the boundary
plot box Plot the bounding box
plot ellipse Plot the equivalent ellipse
display Display value
char Convert value to string
pick Return the index of the blob that is clicked
R
Machine Vision Toolbox for MATLAB 205 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Properties
Note
See also
iblobs, imoments
R
Machine Vision Toolbox for MATLAB 206 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
RegionFeature.RegionFeature
Create a region feature object
RegionFeature.boundary
Boundary in polar form
RegionFeature.box
Return bounding box
b = R.box() is the bounding box in standard Toolbox form [xmin,xmax; ymin, ymax].
RegionFeature.char
Convert to string
RegionFeature.contains
Test if coordinate is contained within region bounding box
R.contains(coord) true if the coordinate COORD lies within the bounding box of the
region feature R. If R is a vector, return a vector of logical values, one per input region.
R
Machine Vision Toolbox for MATLAB 207 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
RegionFeature.display
Display value
Notes
this method is invoked implicitly at the command line when the result of an
expression is a RegionFeature object and the command has no trailing semicolon.
See also
RegionFeature.char
RegionFeature.pick
Select blob from mouse click
i = R.pick() is the index of the region feature within the vector of RegionFeatures R to
which the clicked point corresponds. Since regions can overlap of be contained in other
regions, the region with the smallest area of bounding box that contains the selected
point is returned.
See also
ginput, RegionFeature.inbox
RegionFeature.plot
Plot centroid
R.plot() overlay the centroid on current plot. It is indicated with overlaid o- and x-
markers.
R.plot(ls) as above but the optional line style arguments ls are passed to plot.
If R is a vector then each element is plotted.
R
Machine Vision Toolbox for MATLAB 208 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
RegionFeature.plot boundary
plot boundary
Notes
See also
boundmatch
RegionFeature.plot box
Plot bounding box
R.plot box() overlay the the bounding box of the region on current plot.
R.plot box(ls) as above but the optional line style arguments ls are passed to plot.
If R is a vector then each element is plotted.
RegionFeature.plot ellipse
Plot equivalent ellipse
R.plot ellipse() overlay the the equivalent ellipse of the region on current plot.
R.plot ellipse(ls) as above but the optional line style arguments ls are passed to plot.
If R is a vector then each element is plotted.
R
Machine Vision Toolbox for MATLAB 209 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
rg addticks
Label spectral locus
See also
xycolourspace
rgb2xyz
RGB to XYZ color space
rluminos
Relative photopic luminosity function
References
R
Machine Vision Toolbox for MATLAB 210 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
luminos
runscript
Run an M-file in interactive fashion
runscript(fname, options) runs the M-file fname and pauses after every executable
line in the file until a key is pressed. Comment lines are shown without any delay
between lines.
Options
Notes
See also
eval
R
Machine Vision Toolbox for MATLAB 211 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
rvcpath
Install location of RVC tools
p = RVCPATH is the path of the top level folder for the installed RVC tools.
sad
Sum of absolute differences
m = sad(i1, i2) is the sum of absolute differences between the two equally sized image
patches i1 and i2. The result m is a scalar that indicates image similarity, a value of
0 indicates identical pixel patterns and is increasingly positive as image dissimilarity
increases.
See also
ScalePointFeature
ScalePointCorner feature object
Methods
plot Plot feature position
plot scale Plot feature scale
distance Descriptor distance
ncc Descriptor similarity
uv Return feature coordinate
display Display value
char Convert value to string
R
Machine Vision Toolbox for MATLAB 212 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Properties
u horizontal coordinate
v vertical coordinate
strength feature strength
scale feature scale
descriptor feature descriptor (vector)
Properties of a vector of ScalePointFeature objects are returned as a vector. If F is a
vector (N 1) of ScalePointFeature objects then F.u is a 2 N matrix with each
column the corresponding point coordinate.
See also
ScalePointFeature.ScalePointFeature
Create a scale point feature object
ScalePointFeature.plot
Plot feature
F.plot(options) overlay a marker at the feature position. The default is a point marker.
F.plot(options, ls) as above but the optional line style arguments ls are passed to plot.
If F is a vector then each element is plotted.
Options
R
Machine Vision Toolbox for MATLAB 213 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Examples
Mark each feature with a green circle and with exagerated scale
f.plot(circle, color, g, scale, 2)
See also
PointFeature.plot, plot
showpixels
Show low resolution image
Displays a low resolution image in detail as a grid with colored lines between pixels
and numeric display of pixel values at each pixel. Useful for illustrating principles in
teaching.
Options
Notes
R
Machine Vision Toolbox for MATLAB 214 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
SiftPointFeature
SIFT point corner feature object
Methods
plot plot feature position
plot scale plot feature scale
distance Descriptor distance
ncc Descriptor similarity
match Match features
ncc Descriptor similarity
uv Return feature coordinate
display Display value
char Convert value to string
Properties
u horizontal coordinate
v vertical coordinate
strength feature strength
theta feature orientation [rad]
scale feature scale
descriptor feature descriptor (vector)
image id index of image containing feature
Properties of a vector of SiftCornerFeature objects are returned as a vector. If F is a
vector (N 1) of SiftCornerFeature objects then F.u is a 2N matrix with each column
the corresponding u coordinate.
Notes
References
R
Machine Vision Toolbox for MATLAB 215 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
SiftPointFeature.SiftPointFeature
Create a SIFT point feature object
See also
isift
SiftPointFeature.match
Match SIFT point features
SiftPointFeature.support
Support region of feature
R
Machine Vision Toolbox for MATLAB 216 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
SiftPointFeature
simulinkext
Return file extension of Simulink block diagrams.
Notes
The file extension for Simulink block diagrams has changed from Matlab 2011b to
Matlab 2012a. This function is used for backwards compatibility.
Author
See also
SphericalCamera
Spherical camera class
R
Machine Vision Toolbox for MATLAB 217 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
Properties (read/write)
Note
See also
Camera
R
Machine Vision Toolbox for MATLAB 218 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
SphericalCamera.SphericalCamera
Create spherical projection camera object
Options
See also
SphericalCamera.project
Project world points to image plane
pt = C.project(p, options) are the image plane coordinates for the world points p.
The columns of p (3 N ) are the world points and the columns of pt (2 N ) are
the corresponding spherical projection points, each column is phi (longitude) and theta
(colatitude).
Options
Tobj, T Transform all points by the homogeneous transformation T before projecting them to
the camera image plane.
Tcam, T Set the camera pose to the homogeneous transformation T before projecting points to
the camera image plane. Overrides the current camera pose C.T.
See also
SphericalCamera.plot
R
Machine Vision Toolbox for MATLAB 219 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
SphericalCamera.sph
Implement spherical IBVS for point features
2. The external view, showing the target points and the camera
The results structure contains time-history information about the image plane, cam-
era pose, error, Jacobian condition number, error norm, image plane size and desired
feature locations.
The params structure can be used to override simulation defaults by providing ele-
ments, defaults in parentheses:
target size - the side length of the target in world units (0.5)
target center - center of the target in world coords (0,0,2)
niter - the number of iterations to run the simulation (500)
eterm - a stopping criteria on feature error norm (0)
lambda - gain, can be scalar or diagonal 6 6 matrix (0.01)
ci - camera intrinsic structure (camparam)
depth - depth of points to use for Jacobian, scalar for
SphericalCamera.sph2
Implement spherical IBVS for point features
R
Machine Vision Toolbox for MATLAB 220 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
2. The external view, showing the target points and the camera
The results structure contains time-history information about the image plane, cam-
era pose, error, Jacobian condition number, error norm, image plane size and desired
feature locations.
The params structure can be used to override simulation defaults by providing ele-
ments, defaults in parentheses:
target size - the side length of the target in world units (0.5)
target center - center of the target in world coords (0,0,3)
niter - the number of iterations to run the simulation (500)
eterm - a stopping criteria on feature error norm (0)
lambda - gain, can be scalar or diagonal 6 6 matrix (0.01)
ci - camera intrinsic structure (camparam)
depth - depth of points to use for Jacobian, scalar for
SphericalCamera.visjac p
Visual motion Jacobian for point feature
J = C.visjac p(pt, z) is the image Jacobian (2N 6) for the image plane points pt
(2 N ) described by phi (longitude) and theta (colatitude). The depth of the points
from the camera is given by z which is a scalar, for all points, or a vector (N 1) for
each point.
The Jacobian gives the image-plane velocity in terms of camera spatial velocity.
Reference
See also
R
Machine Vision Toolbox for MATLAB 221 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
ssd
Sum of squared differences
m = ssd(i1, i2) is the sum of squared differences between the two equally sized image
patches i1 and i2. The result m is a scalar that indicates image similarity, a value of
0 indicates identical pixel patterns and is increasingly positive as image dissimilarity
increases.
See also
stdisp
Display stereo pair
See also
idisp, istereo
SurfPointFeature
SURF point corner feature object
R
Machine Vision Toolbox for MATLAB 222 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
plot Plot feature position
plot scale Plot feature scale
distance Descriptor distance
ncc Descriptor similarity
match Match features
uv Return feature coordinate
display Display value
char Convert value to string
Properties
u horizontal coordinate
v vertical coordinate
strength feature strength
scale feature scale
theta feature orientation [rad]
descriptor feature descriptor (vector)
image id index of image containing feature
Properties of a vector of SurfCornerFeature objects are returned as a vector. If F is a
vector (N 1) of SurfCornerFeature objects then F.u is a 2 N matrix with each
column the corresponding u coordinate.
Notes
Reference
SURF: Speeded Up Robust Features, Herbert Bay, Andreas Ess, Tinne Tuytelaars,
Luc Van Gool, Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3,
pp. 346359, 2008
See also
R
Machine Vision Toolbox for MATLAB 223 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
SurfPointFeature.SurfPointFeature
Create a SURF point feature object
See also
isurf, orientedscalepointfeature
SurfPointFeature.match
Match SURF point features
Options
Notes
See also
FeatureMatch
R
Machine Vision Toolbox for MATLAB 224 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
SurfPointFeature.support
Support region of feature
See also
SurfPointFeature
symexpr2slblock
Create symbolic embedded MATLAB Function block
Notes
In Symbolic Toolbox versions prior to V5.7 (2011b) the function to create Em-
bedded Matlab Function blocks from symbolic expressions is emlBlock.
Since V5.7 (2011b) there is another function named matlabFunctionBlock which
replaces the old function.
symexpr2slblock is a wrapper around both functions, which checks for the in-
stalled Symbolic Toolbox version and calls the required function accordingly.
Authors
R
Machine Vision Toolbox for MATLAB 225 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
emlblock, matlabfunctionblock
tb optparse
Standard option parser for Toolbox functions
R
Machine Vision Toolbox for MATLAB 226 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
opt can be an object, rather than a structure, in which case the passed options are
assigned to properties.
The return structure is automatically populated with fields: verbose and debug. The
following options are automatically parsed:
verbose sets opt.verbose := true
verbose=2 sets opt.verbose := 2 (very verbose)
verbose=3 sets opt.verbose := 3 (extremeley verbose)
verbose=4 sets opt.verbose := 4 (ridiculously verbose)
debug, N sets opt.debug := N
showopt displays opt and arglist
setopt, S sets opt := S, if S.foo=4, and opt.foo is present, then opt.foo is set to 4.
The allowable options are specified by the names of the fields in the structure opt. By
default if an option is given that is not a field of opt an error is declared.
[optout,args] = tb optparse(opt, arglist) as above but returns all the unassigned op-
tions, those that dont match anything in opt, as a cell array of all unassigned arguments
in the order given in arglist.
[optout,args,ls] = tb optparse(opt, arglist) as above but if any unmatched option
looks like a MATLAB LineSpec (eg. r:) it is placed in ls rather than in args.
testpattern
Create test images
Examples
R
Machine Vision Toolbox for MATLAB 227 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
A 256 256 image with a grid of dots on 50 pixel centres and 20 pixels in diameter:
testpattern(dots, 256, 50, 25);
Notes
See also
idisp
Tracker
Track points in image sequence
This class assigns each new feature a unique identifier and tracks it from frame to frame
until it is lost. A complete history of all tracks is maintained.
Methods
plot Plot all tracks
tracklengths Length of all tracks
Properties
See also
PointFeature
R
Machine Vision Toolbox for MATLAB 228 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Tracker.Tracker
Create new Tracker object
Options
Notes
See also
PointFeature
Tracker.char
Convert to string
R
Machine Vision Toolbox for MATLAB 229 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Tracker.display
Display value
Notes
This method is invoked implicitly at the command line when the result of an
expression is a Tracker object and the command has no trailing semicolon.
See also
Tracker.char
Tracker.plot
Show feature trajectories
Tracker.tracklengths
Length of all tracks
tristim2cc
Tristimulus to chromaticity coordinates
R
Machine Vision Toolbox for MATLAB 230 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
upq
Central image moments
m = upq(im, p, q) is the PQth central moment of the image im. That is, the sum of
I(x,y).(x-x0)p .(y-y0)q where (x0,y0) is the centroid.
Notes
See also
upq poly
Central polygon moments
m = upq poly(v, p, q) is the PQth central moment of the polygon with vertices de-
scribed by the columns of v.
Notes
The points must be sorted such that they follow the perimeter in sequence (counter-
clockwise).
R
Machine Vision Toolbox for MATLAB 231 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
If the points are clockwise the moments will all be negated, so centroids will be
still be correct.
If the first and last point in the list are the same, they are considered as a single
vertex.
The central moments are invariant to translation.
See also
VideoCamera
Abstract class to read from local video camera
A concrete subclass of ImageSource that acquires images from a local camera using the
MATLAB Image Acquisition Toolbox (imaq). This Toolbox provides a multiplatform
interface to a range of cameras, and this class provides a simple wrapper.
This class is not intended to be used directly, instead use the factory method Video
which will return an instance of this class if the Image Acquisition Toolbox is installed,
for example
vid = VideoCamera();
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
See also
R
Machine Vision Toolbox for MATLAB 232 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
VideoCamera fg
Class to read from local video camera
A concrete subclass of ImageSource that acquires images from a local camera using a
simple open-source frame grabber interface.
This class is not intended to be used directly, instead use the factory method Video-
Camera.which will return an instance of this class if the interface is supported on your
platform (Mac or Linux), for example
vid = VideoCamera.amera();
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
See also
VideoCamera fg.VideoCamera fg
Video camera constructor
Options
R
Machine Vision Toolbox for MATLAB 233 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
The specified resolution must match one that the camera is capable of, other-
wise the result is not predictable.
VideoCamera fg.char
Convert to string
V.char() is a string representing the state of the camera object in human readable form.
VideoCamera fg.close
Close the image source
VideoCamera fg.grab
Acquire image from the camera
Notes
VideoCamera IAT
Class to read from local video camera
A concrete subclass of ImageSource that acquires images from a local camera using the
MATLAB Image Acquisition Toolbox (imaq). This Toolbox provides a multiplatform
interface to a range of cameras, and this class provides a simple wrapper.
This class is not intended to be used directly, instead use the factory method Video
which will return an instance of this class if the Image Acquisition Toolbox is installed,
for example
vid = VideoCamera();
R
Machine Vision Toolbox for MATLAB 234 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
See also
v = Video IAT(camera, options) is a Video object that acquires images from the local
video camera specified by the string camera.
Options
VideoCamera IAT.char
Convert to string
V.char() is a string representing the state of the camera object in human readable form.
R
Machine Vision Toolbox for MATLAB 235 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
VideoCamera IAT.close
Close the image source
VideoCamera IAT.grab
Acquire image from the camera
Notes
VideoCamera IAT.list
available adaptors and cameras
VideoCamera IAT.preview
Control image preview
xaxis
Set X-axis scaling
R
Machine Vision Toolbox for MATLAB 236 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
See also
yaxis
xycolorspace
Display spectral locus
xycolorspace() display a fully colored spectral locus in terms of CIE x and y coordi-
nates.
xycolorspace(p) as above but plot the points whose xy-chromaticity is given by the
columns of p.
[im,ax,ay] = xycolorspace() as above returns the spectral locus as an image im, with
corresponding x- and y-axis coordinates ax and ay respectively.
Notes
The colors shown within the locus only approximate the true colors, due to the
gamut of the display device.
See also
rg addticks
xyzlabel
Label X, Y and Z axes
R
Machine Vision Toolbox for MATLAB 237 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
yaxis
Y-axis scaling
See also
yaxis
YUV
Class to read YUV4MPEG file
Methods
grab Aquire and return the next image
size Size of image
close Close the image source
char Convert the object parameters to human readable string
Properties
See also
ImageSource, video
SEE ALSO: Video
R
Machine Vision Toolbox for MATLAB 238 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
YUV.YUV
YUV4MPEG sequence constructor
y = YUV(file, options) is a YUV4MPEG object that returns frames from the yuv4mpeg
format file file. This file contains uncompressed color images in 4:2:0 format, with a
full resolution luminance plane followed by U and V planes at half resolution both
directions.
Options
YUV.char
Convert to string
M.char() is a string representing the state of the movie object in human readable form.
YUV.close
Close the image source
YUV.grab
Acquire next frame from movie
R
Machine Vision Toolbox for MATLAB 239 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Options
Notes
zcross
Zero-crossing detector
iz = zcross(im) is a binary image with pixels set where the corresponding pixels in the
signed image im have a zero crossing, a positive pixel adjacent to a negative pixel.
Notes
See also
ilog
zncc
Normalized cross correlation
m = zncc(i1, i2) is the zero-mean normalized cross-correlation between the two equally
sized image patches i1 and i2. The result m is a scalar in the interval -1 to 1 that
indicates similarity. A value of 1 indicates identical pixel patterns.
R
Machine Vision Toolbox for MATLAB 240 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
zsad
Sum of absolute differences
m = zsad(i1, i2) is the zero-mean sum of absolute differences between the two equally
sized image patches i1 and i2. The result m is a scalar that indicates image similarity,
a value of 0 indicates identical pixel patterns and is increasingly positive as image
dissimilarity increases.
Notes
See also
zssd
Sum of squared differences
m = zssd(i1, i2) is the zero-mean sum of squared differences between the two equally
sized image patches i1 and i2. The result m is a scalar that indicates image similarity,
a value of 0 indicates identical pixel patterns and is increasingly positive as image
dissimilarity increases.
R
Machine Vision Toolbox for MATLAB 241 Copyright
Peter
c Corke 2015
CHAPTER 2. FUNCTIONS AND CLASSES
Notes
See also
R
Machine Vision Toolbox for MATLAB 242 Copyright
Peter
c Corke 2015