Preface |
|
xiii | |
Acknowledgments |
|
xvii | |
Author |
|
xix | |
|
1 Digital Image Processing and Analysis |
|
|
1 | (46) |
|
|
1 | (1) |
|
1.2 Image Analysis and Computer Vision Overview |
|
|
2 | (4) |
|
1.3 Digital Imaging Systems |
|
|
6 | (5) |
|
1.4 Image Formation and Sensing |
|
|
11 | (16) |
|
1.4.1 Visible Light Imaging |
|
|
13 | (5) |
|
1.4.2 Imaging Outside the Visible Range of the EM Spectrum |
|
|
18 | (4) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
23 | (1) |
|
1.4.6 Computer-Generated Images |
|
|
23 | (4) |
|
|
27 | (12) |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
27 | (9) |
|
1.5.4 Multispectral and Multiband Images |
|
|
36 | (1) |
|
1.5.5 Digital Image File Formats |
|
|
36 | (3) |
|
|
39 | (3) |
|
1.7 References and Further Reading |
|
|
42 | (1) |
|
|
43 | (4) |
|
2 Computer Vision Development Tools |
|
|
47 | (44) |
|
2.1 Introduction and Overview |
|
|
47 | (1) |
|
2.2 CVIPtools Windows GUI |
|
|
47 | (11) |
|
|
49 | (1) |
|
|
50 | (2) |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
52 | (6) |
|
2.3 CVIPlab for C/C++ Programming |
|
|
58 | (13) |
|
2.3.1 Toolkit, Toolbox Libraries and Memory Management in C/C++ |
|
|
63 | (1) |
|
2.3.2 Image Data and File Structures |
|
|
63 | (8) |
|
2.4 The MATLAB CVIP Toolbox |
|
|
71 | (15) |
|
|
71 | (2) |
|
|
73 | (1) |
|
2.4.3 CVIPtools for MATLAB GUI |
|
|
73 | (1) |
|
|
73 | (6) |
|
|
79 | (1) |
|
2.4.6 Using CVIPlab for MATLAB |
|
|
80 | (2) |
|
|
82 | (1) |
|
2.4.8 A Sample Batch Processing M-File |
|
|
83 | (2) |
|
|
85 | (1) |
|
2.5 References and Further Reading |
|
|
86 | (1) |
|
2.6 Introductory Programming Exercises |
|
|
87 | (2) |
|
2.7 Computer Vision and Image Analysis Projects |
|
|
89 | (2) |
|
3 Image Analysis and Computer Vision |
|
|
91 | (60) |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
92 | (29) |
|
3.2.1 Region of Interest Geometry |
|
|
93 | (6) |
|
3.2.2 Arithmetic and Logic Operations |
|
|
99 | (5) |
|
3.2.3 Enhancement with Spatial Filters |
|
|
104 | (4) |
|
3.2.4 Enhancement with Histogram Operations |
|
|
108 | (2) |
|
|
110 | (11) |
|
3.3 Binary Image Analysis |
|
|
121 | (17) |
|
3.3.1 Thresholding Bimodal Histograms |
|
|
121 | (3) |
|
3.3.2 Connectivity and Labeling |
|
|
124 | (1) |
|
3.3.3 Basic Binary Object Features |
|
|
125 | (4) |
|
3.3.4 Computer Vision: Binary Object Classification |
|
|
129 | (9) |
|
|
138 | (4) |
|
3.5 References and Further Reading |
|
|
142 | (1) |
|
|
143 | (4) |
|
3.6.1 Programming Exercises |
|
|
145 | (2) |
|
3.7 Supplementary Exercises |
|
|
147 | (4) |
|
3.7.1 Supplementary Programming Exercises |
|
|
148 | (3) |
|
4 Edge, Line and Shape Detection |
|
|
151 | (62) |
|
4.1 Introduction and Overview |
|
|
151 | (1) |
|
|
151 | (37) |
|
|
153 | (3) |
|
|
156 | (1) |
|
4.2.3 Thresholds, Noise Mitigation and Edge Linking |
|
|
157 | (3) |
|
4.2.4 Advanced Edge Detectors |
|
|
160 | (15) |
|
4.2.5 Edges in Color Images |
|
|
175 | (5) |
|
4.2.6 Edge Detector Performance |
|
|
180 | (8) |
|
|
188 | (6) |
|
|
188 | (3) |
|
|
191 | (3) |
|
4.4 Corner and Shape Detection |
|
|
194 | (5) |
|
|
194 | (3) |
|
4.4.2 Shape Detection with the Hough Transform |
|
|
197 | (2) |
|
|
199 | (6) |
|
4.6 References and Further Reading |
|
|
205 | (1) |
|
|
206 | (4) |
|
4.7.1 Programming Exercises |
|
|
208 | (2) |
|
4.8 Supplementary Exercises |
|
|
210 | (3) |
|
4.8.1 Supplementary Programming Exercises |
|
|
211 | (2) |
|
|
213 | (62) |
|
5.1 Introduction and Overview |
|
|
213 | (4) |
|
5.1.1 Segmentation System Model and Preprocessing |
|
|
213 | (3) |
|
5.1.2 Image Segmentation Categories |
|
|
216 | (1) |
|
5.2 Region Growing and Shrinking |
|
|
217 | (4) |
|
5.3 Clustering Techniques |
|
|
221 | (6) |
|
|
227 | (3) |
|
5.5 Deep Learning Segmentation Methods |
|
|
230 | (3) |
|
5.5.1 Convolution Neural Networks |
|
|
231 | (2) |
|
5.6 Combined Segmentation Approaches |
|
|
233 | (1) |
|
5.7 Morphological Filtering |
|
|
233 | (25) |
|
5.7.1 Erosion, Dilation, Opening, Closing |
|
|
233 | (9) |
|
5.7.2 Hit-or-Miss Transform, Thinning and Skeletonization |
|
|
242 | (8) |
|
5.7.3 Iterative Modification |
|
|
250 | (8) |
|
5.8 Segmentation Evaluation Methods |
|
|
258 | (4) |
|
5.8.1 Binary Object Shape Comparison Metrics |
|
|
258 | (1) |
|
5.8.2 Subjective Methods for Complex Images |
|
|
259 | (2) |
|
5.8.3 Objective Methods for Complex Images |
|
|
261 | (1) |
|
|
262 | (5) |
|
5.10 References and Further Reading |
|
|
267 | (1) |
|
|
268 | (2) |
|
5.11.1 Programming Exercises |
|
|
270 | (1) |
|
5.12 Supplementary Exercises |
|
|
270 | (5) |
|
5.12.1 Supplementary Programming Exercises |
|
|
272 | (3) |
|
6 Feature Extraction and Analysis |
|
|
275 | (56) |
|
6.1 Introduction and Overview |
|
|
275 | (1) |
|
|
276 | (1) |
|
|
276 | (4) |
|
|
280 | (6) |
|
|
286 | (1) |
|
6.5 Fourier Transform and Spectral Features |
|
|
286 | (11) |
|
|
297 | (6) |
|
6.7 Region-Based Features: SIFT/SURF/GIST |
|
|
303 | (1) |
|
6.8 Feature Extraction with CVIPtools |
|
|
304 | (2) |
|
|
306 | (9) |
|
6.9.1 Feature Vectors and Feature Spaces |
|
|
306 | (1) |
|
6.9.2 Distance and Similarity Measures |
|
|
307 | (5) |
|
|
312 | (3) |
|
|
315 | (8) |
|
6.11 References and Further Reading |
|
|
323 | (2) |
|
|
325 | (4) |
|
6.12.1 Programming Exercises |
|
|
327 | (2) |
|
6.13 Supplementary Exercises |
|
|
329 | (2) |
|
6.13.1 Supplementary Programming Exercises |
|
|
330 | (1) |
|
|
331 | (26) |
|
|
331 | (1) |
|
7.2 Algorithm Development: Training and Testing Methods |
|
|
331 | (2) |
|
7.3 Nearest Neighbor (NN), K-NN, Nearest Centroid, Template Matching |
|
|
333 | (1) |
|
7.4 Bayesian, Support Vector Machines, Random Forest Classifiers |
|
|
334 | (3) |
|
7.5 Neural Networks and Deep Learning |
|
|
337 | (3) |
|
7.6 Cost/Risk Functions and Success Measures |
|
|
340 | (3) |
|
7.7 Pattern Classification Tools: Python, R, MATLAB and CVIPtools |
|
|
343 | (3) |
|
|
344 | (1) |
|
7.7.2 R: Bayesian Modeling and Visualization Tools |
|
|
344 | (1) |
|
7.7.3 MATLAB: Statistics and Machine Learning |
|
|
344 | (1) |
|
|
344 | (2) |
|
|
346 | (3) |
|
7.9 References and Further Reading |
|
|
349 | (1) |
|
|
349 | (4) |
|
7.10.1 Programming Exercises |
|
|
352 | (1) |
|
7.11 Supplementary Exercises |
|
|
353 | (4) |
|
7.11.1 Supplementary Programming Exercises |
|
|
355 | (2) |
|
8 Application Development Tools |
|
|
357 | (56) |
|
8.1 Introduction and Overview |
|
|
357 | (1) |
|
8.2 CVIP Algorithm Test and Analysis Tool |
|
|
357 | (10) |
|
8.2.1 Overview and Capabilities |
|
|
357 | (1) |
|
8.2.2 How to Use CVIP-ATAT |
|
|
358 | (1) |
|
8.2.2.1 Running CVIP-ATAT |
|
|
358 | (1) |
|
8.2.2.2 Creating a New Project |
|
|
358 | (2) |
|
|
360 | (2) |
|
8.2.2.4 Inputting an Algorithm |
|
|
362 | (2) |
|
8.2.2.5 Executing an Experiment |
|
|
364 | (3) |
|
8.3 CVIP-ATAT: Application Development Necrotic Liver Tissue |
|
|
367 | (5) |
|
8.3.1 Introduction and Overview |
|
|
367 | (1) |
|
|
368 | (1) |
|
|
368 | (4) |
|
8.4 CVIP-ATAT: Application Development with Fundus Images |
|
|
372 | (5) |
|
8.4.1 Introduction and Overview |
|
|
372 | (1) |
|
|
372 | (5) |
|
|
377 | (1) |
|
8.5 CVIP-ATAT: Automatic Mask Creation of Gait Images |
|
|
377 | (6) |
|
|
377 | (1) |
|
8.5.2 Gait Analysis Images |
|
|
378 | (1) |
|
|
378 | (1) |
|
8.5.4 Algorithm Combinations |
|
|
378 | (2) |
|
|
380 | (2) |
|
|
382 | (1) |
|
|
383 | (1) |
|
8.6 CVIP Feature Extraction and Pattern Classification Tool |
|
|
383 | (10) |
|
8.6.1 Overview and Capabilities |
|
|
383 | (1) |
|
8.6.2 How to Use CVIP-FEPC |
|
|
384 | (1) |
|
8.6.2.1 Running CVIP-FEPC |
|
|
384 | (1) |
|
8.6.2.2 Creating a New Project |
|
|
385 | (1) |
|
8.6.2.3 Entering Classes in CVIP-FEPC |
|
|
386 | (1) |
|
8.6.2.4 Adding Images and Associated Classes |
|
|
386 | (1) |
|
8.6.2.5 Applying Feature Extraction and Pattern Classification |
|
|
386 | (1) |
|
8.6.2.6 Running a Single Test with Training and Test Sets |
|
|
386 | (5) |
|
|
391 | (1) |
|
8.6.2.8 Running a Leave-One-Out Test in Combinatoric Mode |
|
|
391 | (2) |
|
8.7 CVIP-FEPC: Application Development with Thermograms |
|
|
393 | (5) |
|
8.7.1 Introduction and Overview |
|
|
393 | (1) |
|
8.7.2 Setting Up Experiments |
|
|
393 | (2) |
|
8.7.3 Running the Experiments and Analyzing Results |
|
|
395 | (3) |
|
|
398 | (1) |
|
8.8 CVIP-FEPC: Identification of Bone Cancer in Canine Thermograms |
|
|
398 | (5) |
|
|
398 | (1) |
|
8.8.2 Clinical Application Development |
|
|
399 | (1) |
|
|
399 | (1) |
|
8.8.2.2 Feature Extraction and Pattern Classification |
|
|
399 | (1) |
|
8.8.2.3 Experimental Setup |
|
|
400 | (1) |
|
8.8.3 Results and Discussion |
|
|
401 | (1) |
|
|
401 | (2) |
|
|
403 | (1) |
|
8.9 MATLAB CVIP Toolbox GUI: Detection of Syrinx in Canines with Chiari Malformation via Thermograms |
|
|
403 | (10) |
|
|
403 | (1) |
|
8.9.2 Material and Methods |
|
|
404 | (1) |
|
8.9.2.1 Image Data Acquisition |
|
|
404 | (1) |
|
|
404 | (1) |
|
|
404 | (1) |
|
|
405 | (1) |
|
8.9.3 MATLAB CVIP Toolbox |
|
|
405 | (1) |
|
8.9.3.1 Feature Extraction and Pattern Classification |
|
|
405 | (1) |
|
|
405 | (1) |
|
8.9.3.3 Data Normalization Methods |
|
|
405 | (1) |
|
|
405 | (1) |
|
8.9.3.5 Classification Methods |
|
|
405 | (1) |
|
8.9.4 CVIPtools MATLAB Toolbox GUI |
|
|
405 | (1) |
|
8.9.4.1 Feature Extraction Using the MATLAB GUI |
|
|
406 | (1) |
|
8.9.4.2 Pattern Classification Using MATLAB GUI |
|
|
407 | (1) |
|
8.9.5 Results and Discussion |
|
|
408 | (2) |
|
|
410 | (1) |
|
|
411 | (2) |
Index |
|
413 | |