Image Processing with MATLAB

Image Processing with MATLAB
Pontificia Universidad Javeriana
Ing. Alex Mayer – Parsimony Consulting
Inc.
MathWorks,
The
2002
Inc.
MathWorks,
The
2003
©©
Noviembre 18, 2003
1
Image Processing Toolbox
Image display as
movie, montage
Colormap operations
Morphology
ROI processing
Quadtree decomposition
Edge detection
Linear filtering
Image
transforms
2-D Filter design
© 2002 The MathWorks, Inc.
Pixel values and
statistics
Contour plots
Feature measurements
Intensity plots
2
Image Processing Toolbox 4


Advanced image processing and analysis tools for MATLAB,
Intel-architecture-specific optimizations.
Numerous image and scientific file formats supported,
including HDF-EOS and DICOM
New Image Viewer supporting zooming, scrolling, and
overview navigation with large images






Deblurring & enhancement
Image Registration
Transforms (spatial, frequency)
Morphological analysis
Segmentation
Region properties
© 2002 The MathWorks, Inc.

3
 GUI for selecting
control-point pairs
 Functions for
inferring locations of
points
 Cross-correlation
functions
© 2002 The MathWorks, Inc.
Image Registration
4
Spatial Transformations
© 2002 The MathWorks, Inc.
 affine, polynomial, user-defined, projective, piecewise
linear
 Transformations can apply to images and to points
5
Morphology
© 2002 The MathWorks, Inc.
 From basic functions (e.g., dilation) to advanced
segmentation tools (e.g., distance transforms,
watershed)
 High performance using structuring element
decomposition and 32-bit binary image packing
6
Deblurring of images
© 2002 The MathWorks, Inc.
 Deblurring e.g., Wiener deblurring, Regularized
deblurring
 Convert between point-spread and optical transfer
functions
7
 Image from an atomic force microscope
 Contrast enhancement - top-hat and bottomhat transforms.
 Creating regional minima.
 Segmentation using the watershed
transform.
 Feature extraction.
© 2002 The MathWorks, Inc.
Demonstration
8

Capture images and video streams from:



USB and FireWire (IEEE-1394) video cameras
Analog and digital frame grabbers from Matrox and
Datatranslation
© 2002 The MathWorks, Inc.
Image Acquisition Toolbox
Simultaneous image acquisition and processing
9
Working with live data in MATLAB
BEFORE:
Stand Alone
Test & Meas.
Software
File
OUR SOLUTION:
Data
Acquisition
& Instrument
Control
Toolboxes MATLAB
© 2002 The MathWorks, Inc.
MATLAB
Data Acquisition
Hardware (A/D, D/A, DIO)
Data
Acquisition
Physical
Quantity
Sensor
Microphone
Noise
Stand-Alone
Instruments
Instrument
Control
© 2002 The MathWorks, Inc.
Analog/Digital
11
© 2002 The MathWorks, Inc
Biomedical Image Processing Applications
with
MathWorks Products
12
Life Sciences Image Processing
Challenges
Microscopy
Cytology &
Pathology
Radiological
Imaging
Functional
Imaging
Gel and
Microarray
Images
Visualization & 3D
Reconstruction
gel image : Alan W. Partin, M.D., Ph.D.,
Johns Hopkins University School of Medicine
cancer cell image: Alan W. Partin, M.D., Ph.D.,
Johns Hopkins University School of Medicine
pathology image: Angelo M. DeMarzo, M.D. Ph.D.,
Johns Hopkins University School of Medicine
© 2002 The MathWorks, Inc.
Multidimensional
Image Processing
13
Microscopy




Automatic segmentation
Automatic counting
Morphometry
Motility
Deblurring
© 2002 The MathWorks, Inc.

14
Microscopy




© 2002 The MathWorks, Inc.

Automatic segmentation
Automatic counting
Morphometry
Motility
Deblurring
pathology image: Angelo M. DeMarzo, M.D. Ph.D.,
Johns Hopkins University School of Medicine
15




The MathWorks supports DICOM
offline file reading of both image
and metadata
You can get image data and
metadata into MATLAB without
having to write several interfaces
Metadata can be used for
processing in MATLAB
R13 will allow writing DICOM
formatted files
© 2002 The MathWorks, Inc.
MathWorks DICOM support
16
Multidimensional Image Processing



In microscopy image processing can generate insight into
the 3 and 4-dimensional nature of biological specimen
3D image segmentation
Modeling
2D, 3D, 4D Visualization
© 2002 The MathWorks, Inc.

17
Customer Solutions: M2A™
Solution

MathWorks tools were used for the
feasibility study, development and
refinement phases of the image processing
project. New image processing features and
capabilities are of M2A are being developed
in Matlab.
Benefit

Fast efficient development, quick FDA
approval and product to market
© 2002 The MathWorks, Inc.
Problem

Developing a minimally invasive diagnostic
tool that substantially improves visual
imaging of the small intestine
18
Customer Solutions: U. are U.
Solution

MathWorks tools allowed easy reading and
writing of various file formats, as well as
resizing and rotating images quickly and
accurately
Benefit

The MathWorks tools made quick work of
algorithm development and prototyping and
shaved months off the design cycle.
"MATLAB was indispensable for testing
ideas, testing entire systems, and creating
prototypes."
© 2002 The MathWorks, Inc.
Problem

Designing a fingerprint identification
system for personal computers and the
Internet that interfaces easily with existing
hardware and software
19
Smooth Grayscale Region Filling
© 2002 The MathWorks, Inc.
Mix image display, lighted surfaces, a little math, sparse matrix
visualization, and easy, robust number crunching to solve an
interesting image processing problem.
Smooth Grayscale Region Filling
© 2002 The MathWorks, Inc.
Visualizing an image as a surface:
Smooth Grayscale Region Filling
Setting up a linear system, representing a discretized form of Laplace’s
equation, to solve for the filled pixel values.
R
U Q S
T
Equations:
 4A - B - C - D - E = 0
 4Q - S - T - U = R
B
E A C
D
© 2002 The MathWorks, Inc.
Border pixels
Smooth Grayscale Region Filling
© 2002 The MathWorks, Inc.
Visualizing the sparse linear system involving 862 image pixels
Smooth Grayscale Region Filling
Find the pixels in the region;
separate them into perimeter and
interior pixels:
Set up the linear system, solve it,
and insert the computed pixels
into the image:
mask = roipoly(I,xi,yi);
perimeter = bwperim(mask);
interior = mask & ~perimeter;
for k = [north east south west]
Q = grid(idx+k);
q = find(Q);
i = [i; grid(idx(q))];
j = [j; Q(q)];
s = [s; -ones(length(q),1)];
end
D = sparse(i,j,s);
x = D \ rightside;
result(idx) = x;
© 2002 The MathWorks, Inc.
Key MATLAB Code:
24
Smooth Grayscale Region Filling
© 2002 The MathWorks, Inc.
Result displayed as a surface
25
© 2002 The MathWorks, Inc.
Smooth Grayscale Region Filling
© 2002 The MathWorks, Inc
Thank you!
27