Contents
Preface ix
1 Introduction 1
1.1 Images and Pictures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 What Is Image Processing? . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Image Acquisition and Sampling . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Images and Digital Images . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Some Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Image Processing Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 An Image Processing Task . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 Types of Digital Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9 Image File Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.10 Image Perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Images Files and File Types 19
2.1 Opening and Viewing Grayscale Images . . . . . . . . . . . . . . . . . . . 19
2.2 RGB Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Indexed Color Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Numeric Types and Conversions . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 Image Files and Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3 Image Display 43
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 The
imshow Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Bit Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4 Spatial Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5 Quantization and Dithering . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 Point Processing 67
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2 Arithmetic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3 Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4 Lookup Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
v
vi
5 Neighborhood Processing 85
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.3 Filtering in MATLAB and Octave . . . . . . . . . . . . . . . . . . . . . . . 91
5.4 Filtering in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.5 Frequencies; Low and High Pass Filters . . . . . . . . . . . . . . . . . . . . 95
5.6 Gaussian Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.7 Edge Sharpening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.8 Non-Linear Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.9 Edge-Preserving Blurring Filters . . . . . . . . . . . . . . . . . . . . . . . . 113
5.10 Region of Interest Processing . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.11 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6 Image Geometry 125
6.1 Interpolation of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2 Image Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3 General Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.4 Enlargement by Spatial Filtering . . . . . . . . . . . . . . . . . . . . . . . 134
6.5 Scaling Smaller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.7 Correcting Image Distortion . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7 The Fourier Transform 149
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.3 The One-Dimensional Discrete Fourier Transform . . . . . . . . . . . . . . 151
7.4 Properties of the One-Dimensional DFT . . . . . . . . . . . . . . . . . . . 155
7.5 The Two-Dimensional DFT . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.6 Experimenting with Fourier Transforms . . . . . . . . . . . . . . . . . . . . 166
7.7 Fourier Transforms of Synthetic Images . . . . . . . . . . . . . . . . . . . . 169
7.8 Filtering in the Frequency Domain . . . . . . . . . . . . . . . . . . . . . . 173
7.9 Homomorphic Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.10 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8 Image Restoration 193
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
8.2 Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.3 Cleaning Salt and Pepper Noise . . . . . . . . . . . . . . . . . . . . . . . . 197
8.4 Cleaning Gaussian Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
8.5 Removal of Periodic Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.6 Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.7 Wiener Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9 Image Segmentation 223
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.2 Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.3 Applications of Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . 226
vii
9.4 Choosing an Appropriate Threshold Value . . . . . . . . . . . . . . . . . . 227
9.5 Adaptive Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
9.6 Edge Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.7 Derivatives and Edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.8 Second Derivatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
9.9 The Canny Edge Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
9.10 Corner Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
9.11 The Hough and Radon Transforms . . . . . . . . . . . . . . . . . . . . . . 258
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
10 Mathematical Morphology 271
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
10.2 Basic Ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
10.3 Dilation and Erosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
10.4 Opening and Closing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
10.5 The Hit-or-Miss Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
10.6 Some Morphological Algorithms . . . . . . . . . . . . . . . . . . . . . . . . 289
10.7 A Note on the
bwmorph
Function in MATLAB and Octave . . . . . . . . . 295
10.8 Grayscale Morphology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
10.9 Applications of Grayscale Morphology . . . . . . . . . . . . . . . . . . . . 302
10.10 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
11 Image Topology 309
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
11.2 Neighbors and Adjacency . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
11.3 Paths and Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
11.4 Equivalence Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
11.5 Component Labeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
11.6 Lookup Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
11.7 Distances and Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
11.8 Skeletonization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.9 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12 Shapes and Boundaries 351
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2 Chain Codes and Shape Numbers . . . . . . . . . . . . . . . . . . . . . . . 351
12.3 Fourier Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
13 Color Processing 371
13.1 What Is Color? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
13.2 Color Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
13.3 Manipulating Color Images . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
13.4 Pseudocoloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
13.5 Processing of Color Images . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
13.6 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
viii
14 Image Coding and Compression 403
14.1 Lossless and Lossy Compression . . . . . . . . . . . . . . . . . . . . . . . . 403
14.2 Huffman Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 Run Length Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
14.4 Dictionary Coding: LZW Compression . . . . . . . . . . . . . . . . . . . . 410
14.5 The JPEG Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
14.6 Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
15 Wavelets 431
15.1 Waves and Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
15.2 A Simple Wavelet: The Haar Wavelet . . . . . . . . . . . . . . . . . . . . . 436
15.3 Wavelets and Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
15.4 The Daubechies Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
15.5 Image Compression Using Wavelets . . . . . . . . . . . . . . . . . . . . . . 450
15.6 High Pass Filtering Using Wavelets . . . . . . . . . . . . . . . . . . . . . . 455
15.7 Denoising Using Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
16 Special Effects 459
16.1 Polar Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
16.2 Ripple Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
16.3 General Distortion Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
16.4 Pixel Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
16.5 Color Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
A Introduction to MATLAB and Octave 479
A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
A.2 Basic Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
A.3 Variables and the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . 482
A.4 Dealing with Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
A.5 Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
A.6 Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
A.7 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
B Introduction to Python 505
B.1 Basic Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
B.2 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
B.3 Graphics and Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
B.4 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
C The Fast Fourier Transform 517
Bibliography 525
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.237.201