List of Figures and Tables |
Fig. 0-1. Prerequisite Structure By Chapter xxix
Fig. 2-1. The EventTester Frame 12
Fig. 2-2. The Hierarchical Menu 12
Table 2-1. Keyboard Shortcuts 17
Fig. 2-3. Keyboard Shortcuts Nested 17
Fig. 2-4. Three-Key Keyboard Shortcuts. 18
Fig. 2-5. The Petri Net Components 19
Fig. 2-6. Petri Diagram for Key Events 20
Fig. 2-7. The Petri Table 21
Fig. 2-8. The ExpandoLog Dialog 29
Fig. 2-9. ExpandoLog 32
Fig. 3-1. The ImageFrame 39
Fig. 3-2. A Packed Pixel 40
Fig. 3-3. Row Major vs. Column Major 45
Fig. 3-4. Relationship between Drawing Methods 48
Fig. 3-5. The SnellWlx Frame 56
Fig. 3-6. The GrabFrame 57
Fig. 3-7. Class Hierarchy for SnellWlx 59
Fig. 3-8. Test Pattern List 60
Fig. 4-1. Histogram of a Simple Image 63
Fig. 4-2. The PMF and the CMF 63
Fig. 4-3. The Mandrill 65
Fig. 4-4. Original Image with Linear Map 69
Fig. 4-5. The Negated Image 69
Fig. 4-6. Repeated Application of (4.14) 71
Fig. 4-7. Pow = 1.5, a Darkening Curve 72
Fig. 4-8. Image after Application of Darkening Curve 72
Fig. 4-9. Histogram Before and After Darkening 73
Fig. 4-10. Original and Linear Transformed Image 75
Fig. 4-11. Plot of Rescaled Range. 77
Fig. 4-12. Linear Grayscale Dialog Box with Defaults 77
Fig. 4-13. Automatic Linear Contrast Enhancement 78
Fig. 4-14. Effect of the UNAHE 83
Fig. 4-15. Effect of UNAHE on the Histogram 83
Fig. 4-16. UNAHE vs. Automatic Linear Transform 83
Fig. 4-17. Transform Table of the UNAHE CMF 84
Fig. 4-18. Look-up Tables for a ENAHE Image 87
Fig. 4-19. ENAHE Image with Histogram 88
Fig. 4-20. Negate the Image Before the ENAHE, Then Negate Again. 88
Fig. 4-21. Rayleigh Non-adaptive Histogram Equalization 89
Fig. 4-22. Adaptive Histogram Equalization 90
Fig. 4-23. Histograms: Original, NAUHE 91
Fig. 4-24. Adaptive Uniform Histogram Equalization 92
Fig. 4-25. The Class Summary Showing NegateFrame 94
Fig. 5-1. Sketch of a Human Eye 104
Fig. 5-2. Sampling System 111
Fig. 5-3. Quantizing with Fewer Bits Per Pixel 117
Fig. 6-1. Sketch Depicting the Relationship Between the Streams 122
Fig. 6-2. Application for a Buffered Stream 123
Fig. 6-3. A Sample Save File Dialog 125
Fig. 7-1. Save File Dialog 143
Fig. 7-2. The ProgressFrame 147
Table 7-1. Effect of GZIP 151
Fig. 7-3. Chart of RAM and CPU Speed 152
Table 7-2. Modem Milestones 153
Fig. 7-4. Modem Bit Rate 153
Fig. 7-5. Class Tree Showing OpenFrame 160
Table 7-3. Times for the Loop Interchange 167
Fig. 7-6. The ProgressFrame 170
Fig. 8-1. Example of a One-Dimensional Convolution 177
Fig. 8-2. Cyclic Convolution 180
Fig. 8-3. A Convolution, Ignoring the Edges 181
Fig. 8-4. A No-edge Convolution 182
Fig. 8-5. The Five Parts of the Image 183
Fig. 9-1. Mandrill, average 194
Fig. 9-2. A Gaussian Density 197
Fig. 9-3. Convolving the Mandrill 201
Fig. 9-4. Original and 3x3 Cross Median 206
Fig. 9-5. Before and After medianSquare3x3 207
Fig. 9-6. Before and After gauss3x3 207
Fig. 9-7. Before and After medianSquare5x5. 208
Fig. 9-8. Before and After medianOctagon5x5 209
Fig. 9-9. Before and After Application of the medianCross7x7 210
Fig. 9-10. Before and After Application of the medianDiamond7x7 211
Fig. 9-11. Before and After the Hybrid-Median Filter 211
Fig. 9-12. UNHE Emphasis of Hybrid-Median Filtering on Posterization 212
Fig. 9-13. Before and After 3x3 Median Filtering 213
Fig. 9-14. Before and After hp1 215
Fig. 9-15. Hp1 216
Fig. 9-16. Hp2 216
Fig. 9-17. Hp4 vs. hp5 217
Fig. 9-18. Imaging API, Including the SpatialFrame 220
Fig. 10-1. Before and After Application of laplacian3 and Thresholding 236
Fig. 10-2. laplacian3 237
Fig. 10-3. A 3x3 Gaussian 238
Fig. 10-4. laplacian3 vs. laplacian3Prewitt 239
Fig. 10-5. The Mexican Hat 241
Fig. 10-6. Before and After Application of the roberts2 244
Fig. 10-7. UNHE 245
Fig. 10-8. Before and After Sobel Filtering. 249
Fig. 10-9. Roberts on the Left, Sobel on the Right 249
Fig. 10-10. Roberts vs. Sobel 250
Fig. 10-11. Roberts vs. Sobel, UNAHE Pre-process, Then Thresholding 250
Fig. 10-12. The Sobel from 10-11 vs. a Gaussian Prefiltered Sobel 251
Fig. 10-13. Peppers 251
Fig. 10-14. Mean Filtering vs. Gaussian Filtering with Sobel Edge Detection 252
Fig. 10-15. Roberts 254
Fig. 10-16. Edge Man 255
Fig. 10-17. pixelDifference, sobel, separatedPixelDifference and prewitt 256
Fig. 10-18. Roberts vs. Pixel Difference 257
Fig. 10-19. Pixel Difference vs. Laplacian 257
Fig. 10-20. Before and After Frei-Chen 258
Fig. 10-21. Edge Man with Shot Noise vs. Roberts 259
Fig. 10-22. Before and After Pixel Difference 259
Fig. 10-23. Before and After laplacian3 260
Fig. 10-24. 3x3 Gaussian 260
Fig. 10-25. Frei-Chen, Prewitt and Separated-Pixel Difference 261
Fig. 10-26. Before and After medianSquare2x2 261
Fig. 10-27. Before and after laplacian3 262
Fig. 10-28. The Threshold Dialog 272
Fig. 10-29. Before and After a 4-Level Thresholding 272
Fig. 10-30. Before and After a 9-Level Thresholding 273
Fig. 11-1. Erosion 283
Fig. 11-2. The Dilated Mandrill 285
Fig. 11-3. Using (11.21) to Dilate 285
Fig. 11-4. Before and After the Close Filter 291
Fig. 11-5. Before and After Close(kSquare) on the Mandrill 291
Fig. 11-6. Before and after open(kSquare) on the Mandrill 291
Fig. 11-7. Mandrill 293
Fig. 11-8. Icons 294
Fig. 11-9. Before and After Application of Middle Contour 294
Fig. 11-10. The Array Assignment 298
Fig. 11-11. Before and After Skeletonization 302
Fig. 11-12. Before and After Skeletonization 303
Fig. 11-13. Before and After Skeletonization 303
Fig. 11-14. The Dual of the Skeleton 304
Fig. 11-15. Before and After Skeletonization 304
Fig. 11-16. A Sample Obstacle Course with Skeleton Showing Voronoi 305
Fig. 11-17. Erosion Alters the Voronoi 306
Fig. 12-1. A Box and Its Hough 317
Fig. 12-2. Hough Transform 319
Fig. 12-3. Before and After the Hough Lines 320
Fig. 12-4. Drawing 40 Lines from Hough Space 320
Fig. 12-5. A Tilted Box and 40 Lines from Hough Space 321
Fig. 12-6. Forty Point and 200 Point Hough Detection 321
Fig. 12-7. Edge Man with 20 and 200 Point Hough Detection 321
Fig. 12-8. Before and After the bugWalk. 325
Fig. 12-9. Before and After Polygon Thinning 326
Fig. 12-10. The Inverse Roberts Search Space 334
Fig. 12-11. Search for a Path Through the Skeleton 334
Fig. 12-12. Copy the Original Image to the Child Frame 344
Fig. 12-13. Make a Good Cost Function 344
Fig. 12-14. Select the Marker Icon 345
Fig. 14-1. The AffineFrame 383
Fig. 14-2. The Quadrilateral 383
Fig. 14-3. Before and After Scaling in x and y. 384
Fig. 14-4. Scale in x vs. Scale in y. 384
Fig. 14-5. Shear in x vs. Shear in y. 385
Fig. 14-6. Rotation 388
Fig. 14-7. Scale in the x vs. y Direction 388
Fig. 14-8. Shear 389
Fig. 14-9. Shear in the y Direction 389
Fig. 14-10. Inferring the Transform from 3 Points 392
Fig. 14-11. Mapping Quadrilaterals to Quadrilaterals 397
Fig. 14-12. Inferred 4 Point Bilinear Feedback 400
Fig. 14-13. Conformal Mapping 401
Table 15-1. Convolution Times 409
Fig. 15-1. Edge Man and His FFT 409
Fig. 15-2. The Xform Menu 410
Fig. 15-3. The Mandrill and the PSD of the FFT 411
Fig. 15-4. A Notch Filter and the Inverse FFT 411
Fig. 15-5. A Depiction of the Sub-Band Layout 419
Fig. 15-6. A Sub-Sampling Filter-Bank 419
Fig. 15-7. Before and After the Integer Haar Transform 426
Fig. 15-8. Backward Lossy Integer Haar Transform 427
Fig. 15-9. Using 25% of the Detail for a Reconstruction 427
Fig. 15-10. Using 75% of the Detail for a Non-Standard Reconstruction 428
Fig. 15-11. Using 25% of the Detail for a Non-Standard Reconstruction 428
Fig. 15-12. Using 12% of the Detail for a Non-Standard Reconstruction 428
Fig. B-1. The Magnifier Icon 438
Fig. B-2. Save As Binary Icon 439
Fig. B-3. Binary Icon Output as Java 439
Fig. B-4. The Kahindu Toolbar 440
Fig. B-5. Using the Magnifier 441
Fig. B-6. Elements of One Icon Can Be Used in Another 441
Fig. B-7. Hand Typing an Icon 442
Fig. C-1. Some of the Main Classes in the gui package. 446
Fig. C-2. The Relationship of the Frames in the gui Package. 447
Fig. C-3. The WindowListener Hierarchy 461
Fig. C-4. The ActionListener Hierarchy 462
Fig. C-5. The Dialog Hierarchy 463
Fig. C-6. The FloatPlane Hierarchy 463