Digital Image Processing Using MATLAB

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Digital Image Processing Using MATLAB is the first book to offer a balanced treatment of image processing fundamentals and the software principles used in their implementation. The book integrates material from the leading text, Digital Image Processing by Gonzalez and Woods, and the Image Processing Toolbox from The MathWorks, Inc., a leader in scientific computing. The Image Processing Toolbox provides a stable, well-supported software environment for addressing a broad range of applications in digital image processing. A unique feature of the book is its emphasis on showing how to enhance those tools by developing new code. This is important in image processing, an area that normally requires extensive experimental work in order to arrive at acceptable application solutions. Some Highlights: (1) This new edition is an extensive upgrade of the book. (2) Over 120 new MATLAB image processing functions are developed, a 40 % increase over existing functions in the Image Processing Toolbox. (3) Algorithms and MATLAB functions in the mainstream of digital image processing are discussed and implemented, including: Intensity transformations; spatial filtering; fuzzy image processing; filtering in the frequency domain; image restoration and reconstruction; geometric transformations and image registration; color image processing; wavelets; image and video compression; morphology; image segmentation; image representation and description; and object recognition. (4) In addition to a major revision of the topics from the first edition, features in this edition include new coverage of: The Radon transform; image processing functions based on function-generating functions (function factories); geometric transformations; image registration; color profiles and device-independent color conversions; functions for video compression; adaptive thresholding algorithms; new image features, including minimum-perimeter polygons and local (corner) features.

Author(s): Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins
Edition: 2nd edition
Publisher: Gatesmark Publishing
Year: 2009

Language: English
Pages: 845

Contents......Page 6
1.1 Background......Page 20
1.2 What Is Digital Image Processing?......Page 21
1.3 Background on MATLAB and the Image Processing Toolbox......Page 23
1.4 Areas of Image Processing Covered in the Book......Page 24
1.7 The MATLAB Desktop......Page 26
1.7.2 Getting Help......Page 29
1.8 How References Are Organized in the Book......Page 30
Summary......Page 31
2.1 Digital Image Representation......Page 32
2.1.1 Coordinate Conventions......Page 33
2.2 Reading Images......Page 34
2.3 Displaying Images......Page 37
2.4 Writing Images......Page 40
2.5 Classes......Page 45
2.6.2 Binary Images......Page 46
2.7 Converting between Classes......Page 47
2.8.1 Indexing Vectors......Page 52
2.8.2 Indexing Matrices......Page 54
2.8.3 Indexing with a Single Colon......Page 56
2.8.4 Logical Indexing......Page 57
2.8.5 Linear Indexing......Page 58
2.8.7 Sparse Matrices......Page 61
2.9 Some Important Standard Arrays......Page 62
2.10.1 M-Files......Page 63
2.10.2 Operators......Page 65
2.10.3 Flow Control......Page 76
2.10.4 Function Handles......Page 82
2.10.5 Code Optimization......Page 84
2.10.6 Interactive I/O......Page 90
2.10.7 An Introduction to Cell Arrays and Structures......Page 93
Summary......Page 98
3.1 Background......Page 99
3.2 Intensity Transformation Functions......Page 100
3.2.1 Functions imadj ust and stretchlim......Page 101
3.2.2 Logarithmic and Contrast-Stretching Transformations......Page 103
3.2.3 Specifying Arbitrary Intensity Transformations......Page 105
3.2.4 Some Utility M-functions for Intensity Transformations......Page 106
3.3 Histogram Processing and Function Plotting......Page 112
3.3.1 Generating and Plotting Image Histograms......Page 113
3.3.2 Histogram Equalization......Page 118
3.3.3 Histogram Matching (Specification)......Page 121
3.3.4 Function adapthisteq......Page 126
3.4.1 Linear Spatial Filtering......Page 128
3.4.2 Nonlinear Spatial Filtering......Page 136
3.5.1 Linear Spatial Filters......Page 139
3.5.2 Nonlinear Spatial Filters......Page 143
3.6.2 Introduction to Fuzzy Sets......Page 147
3.6.3 Using Fuzzy Sets......Page 152
3.6.4 A Set of Custom Fuzzy M-functions......Page 159
3.6.5 Using Fuzzy Sets for Intensity Transformations......Page 174
3.6.6 Using Fuzzy Sets for Spatial Filtering......Page 177
Summary......Page 182
4.1 The 2-D Discrete Fourier Transform......Page 183
4.2 Computing and Visualizing the 2-D DFT in MATLAB......Page 187
4.3 Filtering in the Frequency Domain......Page 191
4.3.1 Fundamentals......Page 192
4.3.2 Basic Steps in DFT Filtering......Page 197
4.3.3 An M-function for Filtering in the Frequency Domain......Page 198
4.4 Obtaining Frequency Domain Filters from Spatial Filters......Page 199
4.5 Generating Filters Directly in the Frequency Domain......Page 204
4.5.1 Creating Meshgrid Arrays for Use in Implementing Filtersin the Frequency Domain......Page 205
4.5.2 Lowpass (Smoothing) Frequency Domain Filters......Page 206
4.5.3 Wireframe and Surface Plotting......Page 209
4.6.1 A Function for Highpass Filtering......Page 213
4.6.2 High-Frequency Emphasis Filtering......Page 216
4.7.1 Bandreject and Bandpass Filters......Page 218
4.7.2 Notchreject and Notchpass Filters......Page 221
Summary......Page 227
5 Image Restoration and Reconstruction......Page 228
5.1 A Model of the Image Degradation/Restoration Process......Page 229
5.2.1 Adding Noise to Images with Function imnoise......Page 230
5.2.2 Generating Spatial Random Noise with a SpecifiedDistribution......Page 231
5.2.3 Periodic Noise......Page 239
5.2.4 Estimating Noise Parameters......Page 243
5.3.1 Spatial Noise Filters......Page 248
5.3.2 Adaptive Spatial Filters......Page 252
5.4 Periodic Noise Reduction Using Frequency Domain Filtering......Page 255
5.5 Modeling the Degradation Function......Page 256
5.7 Wiener Filtering......Page 259
5.8 Constrained Least Squares (Regularized) Filtering......Page 263
5.9 Iterative Nonlinear Restoration Using the Lucy-RichardsonAlgorithm......Page 265
5.10 Blind Deconvolution......Page 269
5.11 Image Reconstruction from Projections......Page 270
5.11.1 Background......Page 271
5.11.2 Parallel-Beam Projections and the Radon Transform......Page 273
5.11.3 The Fourier Slice Theorem and Filtered Backprojections......Page 276
5.11.4 Filter Implementation......Page 277
5.11.5 Reconstruction Using Fan-Beam Filtered Backprojections......Page 278
5.11.6 Function radon......Page 279
5.11.7 Function iradon......Page 282
5.11.8 Working with Fan-Beam Data......Page 287
Summary......Page 296
6.1 Transforming Points......Page 297
6.2 Affine Transformations......Page 302
6.3 Projective Transformations......Page 306
6.4 Applying Geometric Transformations to Images......Page 307
6.5 Image Coordinate Systems in MATLAB......Page 310
6.5.1 Output Image Location......Page 312
6.5.2 Controlling the Output Grid......Page 316
6.6 Image Interpolation......Page 318
6.6.2 Comparing Interpolation Methods......Page 321
6.7 Image Registration......Page 324
6.7.2 Manual Feature Selection and Matching Using cpselect......Page 325
6.7.4 Visualizing Aligned Images......Page 326
6.7.5 Area-Based Registration......Page 330
6.7.5 Automatic Feature-Based Registration......Page 335
Summary......Page 336
7.1.1 RGB Images......Page 337
7.1.2 Indexed Images......Page 340
7.1.3 Functions for Manipulating RGB and Indexed Images......Page 342
7.2.1 NTSC Color Space......Page 347
7.2.3 The HSV Color Space......Page 348
7.2.4 The CMY and CMYK Color Spaces......Page 349
7.2.5 The HSI Color Space......Page 350
7.2.6 Device-Independent Color Spaces......Page 359
7.3 The Basics of Color Image Processing......Page 368
7.4 Color Transformations......Page 369
7.5.1 Color Image Smoothing......Page 379
7.5.2 Color Image Sharpening......Page 384
7.6.1 Color Edge Detection Using the Gradient......Page 385
7.6.2 Image Segmentation in RGB Vector Space......Page 391
Summary......Page 395
8.1 Background......Page 396
8.2 The Fast Wavelet Transform......Page 399
8.2.1 FWTs Using the Wavelet Toolbox......Page 400
8.2.2 FWTs without the Wavelet Toolbox......Page 406
8.3 Working with Wavelet Decomposition Structures......Page 415
8.3.1 Editing Wavelet Decomposition Coefficients without theWavelet Toolbox......Page 418
8.3.2 Displaying Wavelet Decomposition Coefficients......Page 423
8.4 The Inverse Fast Wavelet Transform......Page 427
8.5 Wavelets in Image Processing......Page 433
Summary......Page 438
9 Image Compression......Page 439
9.1 Background......Page 440
9.2 Coding Redundancy......Page 443
9.2.1 Huffman Codes......Page 446
9.2.2 Huffman Encoding......Page 452
9.2.3 Huffman Decoding......Page 458
9.3 Spatial Redundancy......Page 465
9.4 Irrelevant Information......Page 472
9.5.1 JPEG......Page 475
9.5.2 JPEG 2000......Page 483
9.6 Video Compression......Page 491
9.6.1 MATLAB Image Sequences and Movies......Page 492
9.6.2 Temporal Redundancy and Motion Compensation......Page 495
Summary......Page 504
10 Morphological Image Processing......Page 505
10.1.1 Some Basic Concepts from Set Theory......Page 506
10.1.2 Binary Images, Sets, and Logical Operators......Page 508
10.2.1 Dilation......Page 509
10.2.2 Structuring Element Decomposition......Page 512
10.2.3 The strel Function......Page 513
10.2.4 Erosion......Page 516
10.3.1 Opening and Closing......Page 519
10.3.2 The Hit-or-Miss Transformation......Page 522
10.3.3 Using Lookup Tables......Page 525
10.3.4 Function bwmorph......Page 530
10.4 Labeling Connected Components......Page 533
10.5.1 Opening by Reconstruction......Page 537
10.5.2 Filling Holes......Page 539
10.6.1 Dilation and Erosion......Page 540
10.6.2 Opening and Closing......Page 543
10.6.3 Reconstruction......Page 549
Summary......Page 553
11 Image Segmentation......Page 554
11.1.1 Point Detection......Page 555
11.1.2 Line Detection......Page 557
11.1.3 Edge Detection Using Function edge......Page 560
11.2 Line Detection Using the Hough Transform......Page 568
11.2.1 Background......Page 570
11.2.2 Toolbox Hough Functions......Page 571
11.3.1 Foundation......Page 576
11.3.2 Basic Global Thresholding......Page 578
11.3.3 Optimum Global Thresholding Using Otsu's Method......Page 580
11.3.4 Using Image Smoothing to Improve Global Thresholding......Page 584
11.3.5 Using Edges to Improve Global Thresholding......Page 586
11.3.6 Variable Thresholding Based on Local Statistics......Page 590
11.3.7 Image Thresholding Using Moving Averages......Page 594
11.4.2 Region Growing......Page 597
11.4.3 Region Splitting and Merging......Page 601
11.5 Segmentation Using the Watershed Transform......Page 607
11.5.1 Watershed Segmentation Using the Distance Transform......Page 608
11.5.2 Watershed Segmentation Using Gradients......Page 610
11.5.3 Marker-Controlled Watershed Segmentation......Page 612
Summary......Page 615
12.1 Background......Page 616
12.1.1 Functions for Extracting Regions and Their Boundaries......Page 617
12.1.2 Some Additional MATLAB and Toolbox Functions Usedin This Chapter......Page 622
12.1.3 Some Basic Utility M-Functions......Page 623
12.2.1 Chain Codes......Page 625
12.2.2 Polygonal Approximations Using Minimum-PerimeterPolygons......Page 629
12.2.3 Signatures......Page 638
12.2.4 Boundary Segments......Page 641
12.2.5 Skeletons......Page 642
12.3.1 Some Simple Descriptors......Page 644
12.3.2 Shape Numbers......Page 645
12.3.3 Fourier Descriptors......Page 646
12.3.4 Statistical Moments......Page 651
12.3.5 Corners......Page 652
12.4 Regional Descriptors......Page 660
12.4.1 Function regionprops......Page 661
12.4.2 Texture......Page 663
12.4.3 Moment Invariants......Page 675
12.5 Using Principal Components for Description......Page 680
Summary......Page 691
13.1 Background......Page 693
13.2 Computing Distance Measures in MAT LAB......Page 694
13.3 Recognition Based on Decision-Theoretic Methods......Page 698
13.3.2 Pattern Matching Using Minimum-Distance Classifiers......Page 699
13.3.3 Matching by Correlation......Page 700
13.3.4 Optimum Statistical Classifiers......Page 703
13.4 Structural Recognition......Page 710
13.4.1 Working with Strings in MATLAB......Page 711
13.4.2 String Matching......Page 720
Summary......Page 725
Appendix A M-Function Summary......Page 726
Appendix B ICE and MATLAB Graphical UserInterfaces......Page 743
Appendix C Additional CustomM-functions......Page 769
Bibliography......Page 832
Index......Page 836