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