1 Preview
1.1 Background
1.2 What's Is Digital Image Processing?
1.3 Background on MATLAB and the Image Processing Toolbox
1.4 Areas of Image Processing Covered in the Book
1.5 The Book Web Site
1.6 Notation
1.7 The MATLAB Working Environment
1.7.1 The MATLAB Desktop
1.7.2 Using the MATLAB Editor to Create M-Files
1.7.3 Getting Help
1.7.4 Saving and Retrieving a Work Session
1.8 How References Are Organized in the Book
Summary
2 Fundamentals
Preview
2.1 Digital Image Representation
2.1.1 Coordinate Conventions
2.1.2 Images as Matrices
2.2 Reading Images
2.3 Displaying Images
2.4 Writing Images
2.5 Data Classes
2.6 Image Types
2.6.1 Intensity Images
2.6.2 Binary Images
2.6.3 A Note on Terminology
2.7 Converting between Data Classes and Image Types
2.7.1 Converting between Data Classes
2.7.2 Converting between Image Classes and Types
2.8 Array Indexing
2.8.1 Vector Indexing
2.8.2 Matrix Indexing
2.8.3 Selecting Array Dimensions
2.9 Some Important Standard Arrays
2.10 Introduction to M-Function Programming
2.10.1 M-Files
2.10.2 Operators
2.10.3 Flow Control
2.10.4 Code Optimezation
2.10.5 Interactive I/O
2.10.6 A Brief Introduction to Cell Arrays and Structures
Summary
3 Intensity Transformations and Spatial Filtering
Preview
3.1 Background
3.2 Intensity Transformation Functions
3.2.1 Function imadjust
3.2.2 Logarithmic and Contrast-Stretching Transformations
3.2.3 Some Utility M-Functions for Intensity Transformations
3.3 Histogram Processing and Function Plotting
3.3.1 Generating and Plotting Image Histograms
3.3.2 Histogram Equalization
3.3.3 Histogram Matching (Specification)
3.4 Spatial Filtering
3.4.1 Linear Spatial Filtering
3.4.2 Nonlinear Spatial Filtering
3.5 Image Processing Toolbox Standard Spatial Filters
3.5.1 Linear Spatial Filters
3.5.2 Nonlinear Spatial Filters
Summary
4 Frequency Domain Processing
Preview
4.1 The 2-D Discrete Fourier Transform
4.2 Computing and Visualizing the 2-D DFT in MATLAB
4.3 Filtering in the Frequency Domain
4.3.1 Fundamental Concepts
4.3.2 Basic Steps in DFT Filtering
4.3.3 An M-function for Filtering in the Frequency Domain
4.4 Obtaining Frequency Domain Filters from Spatial Filters
4.5 Generating Filters Directly in the Frequency Domain
4.5.1 Creating Meshgrid Arrays for Use in Implementing Filters in the Frequency Domain
4.5.2 Lowpass Frequency Domain Filters
4.5.3 Wireframe and Surface Plotting
4.6 Sharpening Frequency Domain Filters
4.6.1 Basic Highpass Filtering
4.6.2 High-Frequency Emphasis Filtering
Summary
5 Image Restoration
Preview
5.1 A Model of the Image Degradation/Restoration Process
5.2 Noise Models
5.2.1 Adding Noise with Function imnoise
5.2.2 Generating Spatial Random Noise with a Specified Distribution
5.2.3 Periodic Noise
5.2.4 Estimating Noise Parameters
5.3 Restoration in the Presence of Noise Only-Spatial Filtering
5.3.1 Spatial Noise Filters
5.3.2 Adaptive Spatial Filters
5.4 Periodic Noise Reduction by Frequency Domain Filtering
5.5 Modeling the Degradation Function
5.6 Direct Inverse Filtering
5.7 Wiener Filtering
5.8 Constrained Least Squares(Regularized)Filtering
5.9 Iterative Nonlinear Restoration Using the Lucy-Richardson Algorithm
5.10 Blind Deconvolution
5.11 Geometric Transformations and Image Registration
5.11.1 Geometric Spatial Transformations
5.11.2 Applying Spatial Transformations to Images
5.11.3 Image Registration
Summary
6 Color Image Processing
Preview
6.1 Color Image Representation in MATLAB
6.1.1 RGB Images
6.1.2 Indexed Images
6.1.3 IPT Functions for Manipulating RGB and Indexed Images
6.2 Converting to Other Color Spaces
6.2.1 NTSC Color Space
6.2.2 The YCbCr Color Space
6.2.3 The HSV Color Space
6.2.4 The CMY and CMYK Color Spaces
6.2.5 The HSI Color Space
6.3 The Basics of Color Image Processing
6.4 Color Transformations
6.5 Spatial Filtering of Color Images
6.5.1 Color Images Smoothing
6.5.2 Color Images Sharpening
6.6 Working Directly in RGB Vector Space
6.6.1 Color Edge Detection Using the Gradient
6.6.2 Image Segmentation in RGB Vector Space
Summary
7 Wavelets
Preview
7.1 Background
7.2 The Fast Wavelet Transform
7.2.1 FWTs Using the Wavelet Toolbox
7.2.2 FWTs without the Wavelet Toolbox
7.3 Working with Wavelet Decomposition Structures
7.3.1 Editing Wavelet Decomposition Coefficients without the Wavelet Toolbox
7.3.2 Displaying Wavelet Decomposition Coefficients
7.4 The Inverse Fast Wavelet Transform
7.5 Wavelets in Image Processing
Summary
8 Image Compression
Preview
8.1 Background
8.2 Coding Redundancy
8.2.1 Huffman Codes
8.2.2 Huffman Encoding
8.2.3 Huffman Decoding
8.3 Interpixel Redundancy
8.4 Psychovisual Redundancy
8.5 JPEG Compression
8.5.1 JPEG
8.5.2 JPEG 2000
Summary
9 Moorphological Image Processing
Preview
9.1 Preliminaries
9.1.1 Some Basic Concepts from Set Theory
9.1.2 Binary Images,Sets,and Logical Operators
9.2 Dilation and Erosion
9.2.1 Dilation
9.2.2 Structuring Element Decomposition
9.2.3 The strel Function
9.2.4 Erosion
9.3 Combining Dilation and Erosion
9.3.1 Opening and Closing
9.3.2 The Hit-or-Miss Transformation
9.3.3 Using Lookup Tables
9.3.4 Function bwmorph
9.4 Labeling Connected Components
9.5 Morphological Reconstruction
9.5.1 Opening by Reconstruction
9.5.2 Filling Holes
9.5.3 Clearing Border Objects
9.6 Gray-Scale Morphology
9.6.1 Dilation and Erosion
9.6.2 Opening and Closing
9.6.3 Reconstruction
Summary
10 Image Segmentation
Preview
10.1 Point,Line,and Edge Detection
10.1.1 Point Detection
10.1.2 Line Detection
10.1.3 Edge Detection Using Function edge
10.2 Line Detection Using the Hough Transform
10.2.1 Hough Transform Peak Detection
10.2.2 Hough Transform Line Detection and Linking
10.3 Thresholding
10.3.1 Global Thresholding
10.3.2 Local Thresholding
10.4 Region-Based Segmentation
10.4.1 Basic Formulation
10.4.2 Region Growing
10.4.3 Region Splitting and Merging
10.5 Segmentation Using the Watershed Transform
10.5.1 Watershed Segmentation Using the Distance Transform
10.5.2 Watershed Segmentation Using Gradients
10.5.3 Marker-Controlled Watershed Segmentation
Summary
11 Representation and Description
Preview
11.1 Background
11.1.1 Cell Arrays and Structures
11.1.2 Some Additional MATLAB and IPT Functions Used in This Chapter
11.1.3 Some Basic Utility M-Functions
11.2 Representation
11.2.1 Chain Codes
11.2.2 Polygonal Approximations Usin Minimum-Perimeter Polygons
11.2.3 Signatures
11.2.4 Boundary Segments
11.2.5 Skeletons
11.3 Boundary Descriptors
11.3.1 Some Simple Descriptors
11.3.2 Shape Numbers
11.3.3 Fourier Descriptors
11.3.4 Statistical Moments
11.4 Regional Descriptors
11.4.1 Function regionprops
11.4.2 Texture
11.4.3 Moment Invariants
11.5 Using Principal Components for Description
Summary
12 Object Recognition
Preview
12.1 Background
12.2 Computing Distance Measures in MATLAB
12.3 Recognition Based on Decision-Theoretic Methods
12.3.1 Forming Pattern Vectors
12.3.2 Pattern Matching Using Minimum-Distance Classifiers
12.3.3 Matching by Correlation
12.3.4 Optimum Statistical Classifiers
12.3.5 Adaptive Learning Systems
12.4 Structural Recognition
12.4.1 Working with Strings in MATLAB
12.4.2String Matching
Summary
Appendix A Function Summary
Appendix B ICE and MATLAB Graphical User Interfaces
Appendix C M-Functions
Bibliography
Index