Image Processing In Java - Douglas A. Lyon

Image Processing In Java

Douglas A. Lyon (Autor)

Media-Kombination
574 Seiten
1999
Prentice Hall
978-0-13-974577-5 (ISBN)
62,80 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Combines a set of real-world Java-based image processing examples, with a theoretical foundation for image processing. This end-to-end "cookbook" delivers platform-independent algorithms you can use to build Java-based software.
The book comes complete with full source code listings and a clear description of the techniques used. Examples and exposition alone make it a good introduction to the image processing field. Use of Java makes the image processing examples portable. This is the only Java book covering: embedded web page coding; wavelet transforms; cosine transforms; compression techniques; resolution techniques; enhancement techniques; and special effects.

Douglas F. Lyon Ph.D. is Director of the Image Sequence Processing Lab in the Computer Science and Engineering Department at the University of Bridgeport (Connecticut), where he teaches Java and advanced Java. He has worked at the Jet Propulsion Laboratory's Artificial Intelligence R&D department and at AT&T Bell Laboratories, and is co-author of Digital Signal Processing.

(NOTE: Most chapters contain a Class Summary, Class Usage and Class Implementation.)

List of Figures and Tables.


Acknowledgment.


Foreword.


Preface.


Why Should I Care About Java?


Who Should Read This Book?


Why Not Use the Advanced Imaging Package?


This Is Not Just a Textbook.


What Chapters Do I Need to Read?


How Can I Use the Web to Teach and Learn More Image Processing?


1. Introduction.


What is This Book About?



What is Image Processing? What is Java? Why Do Image Processing in Java?



Who Should Read This Book? What Will You Learn?



2. Event Processing and the AWT.


The Frame Class. Interaction.



The EventTester. BooLog. ExpandoLog. Class Summary. Class Usage.



Summary. Suggested Projects.



3. Displaying and Filtering Images


Image Representation. Scalar Numeric Data Types. Arrays in Java. Drawing in Java. The ImageFrame Class. The FilterFrame. The GrabFrame Class. SnellWlx Class and Test Patterns.



4. Homogeneous Point Processing.


The Histogram Class. Homogeneous Point Processing Functions.



Using the Pow Function. Using Linear Transforms. The Uniform Non- Adaptive Histogram Equalization. Maple and Exponential Non Adaptive Histogram Equalization. Adaptive Histogram Equalization.



The TransformTable Class. The NegateFrame Class. Summary.



5. Digital Image Processing Fundamentals.


The Human Visual System. Overview of Image Processing.



Digitizing a Signal. Image Digitization. Image Display.



6. Input Streams.


Getting a FileName. File Input. The Stream Ubyte Class. The StreamSniffer Class.



7. Image File Readers and Writers.


Getting a Filename and Writing a PPM File. Writing a Program That Writes a Program. Writing Lossless 24-Bit Color Image Files. Reading GZIP Compressed PPM Files. The SaveFrame Class. The OpenFrame Class. The Timer Class.



Class Example: Loop Interchange.



The ProgressFrame. The WriteGif. The WritePPM Class.



The PPM. Class Example.



Summary. Projects.



8. Direct Convolution.


The Mathematical Basis of Convolution. The Cyclic Convolution, Correctness and Speed. Generating Convolution Kernels - The Mat Class. Implementing Direct Convolution. Summary.



9. Spatial Filters


Blurring. Median Filtering. High-Pass. The SpatialFilterFrame. Summary. Suggested Projects.



10. Convolution-based Edge Detection.


Laplace Filter. Roberts. Sobel and the Double Templates. Comparing Edge Detectors. Summary. Projects. EdgeFrame Class.



11. Morphological Filtering.


Set Theory. Erosion and Dilation. Opening and Closing. Outlining. Thinning and Skeletonization. Summary. Projects. The MorphFrame.



12. Boundary Processing.


Hough Transform. Simple Edge Tracing. Edge Detection. Summary. Projects. The BoundaryFrame. The MartelliFrame.



13. Chromatic Light.


Introduction to Color. Tristimulus.



RGB and XYZ for Illuminant D65. Sub-Sampling. YIQ and NTSC Encoders.



Linear Cut Color Reduction. The Median Cut Algorithm. Summary. Projects. The ColorHash Class. The ColorFrame.



14. Warping.


Translation. Scaling. Rotation. Shear. The AffineFrame. Applying the Transforms to an Image. Inferring a 3 Point Affine Mapping. Inferring a 4 Point Bilinear Map. Effects. Projects.



15. Unitary Transforms.


Introduction. The Discrete Fourier Transform. The Wavelet Transform. The Haar Basis. Implementing the Two-Dimensional Haar Lifting. Writing a Wavelet Encoded File. Summary. Projects.



Appendix A. Book Resources On-line.


Appendix B. The Kahindu Interface.


B.1. Icon Design.



B.2. Icon Design By Drawing.



B.3. Icon Design By Typing.



B.4. Saving the Icon as Java.



Appendix C. The Structure of Kahindu.


Appendix D. Index of Fields and Methods.


Literature Cited.


Index.


Colophon.


List of Figures and Tables.


Fig. 0-1. Prerequisite Structure By Chapter. Fig. 2-1. The EventTester Frame. Fig. 2-2. The Hierarchical Menu. Table 2-1. Keyboard Shortcuts. Fig. 2-3. Keyboard Shortcuts Nested. Fig. 2-4. Three-Key Keyboard Shortcuts. Fig. 2-5. The Petri Net Components. Fig. 2-6. Petri Diagram for Key Events. Fig. 2-7. The Petri Table. Fig. 2-8. The ExpandoLog Dialog. Fig. 2-9. ExpandoLog.



Fig. 3-1. The ImageFrame. Fig. 3-2. A Packed Pixel. Fig. 3-3. Row Major vs. Column Major. Fig. 3-4. Relationship between Drawing Methods. Fig. 3-5. The SnellWlx Frame. Fig. 3-6. The GrabFrame. Fig. 3-7. Class Hierarchy for SnellWlx Fig. 3-8. Test Pattern List.



Fig. 4-1. Histogram of a Simple Image. Fig. 4-2. The PMF and the CMF. Fig. 4-3. The Mandrill. Fig. 4-4. Original Image with Linear Map. Fig. 4-5. The Negated Image. Fig. 4-6. Repeated Application of (4.14). Fig. 4-7. Pow = 1.5, a Darkening Curve. Fig. 4-8. Image after Application of Darkening Curve. Fig. 4-9. Histogram Before and After Darkening. Fig. 4-10. Original and Linear Transformed Image. Fig. 4-11. Plot of Rescaled Range. Fig. 4-12. Linear Grayscale Dialog Box with Defaults. Fig. 4-13. Automatic Linear Contrast Enhancement. Fig. 4-14. Effect of the UNAHE. Fig. 4-15. Effect of UNAHE on the Histogram. Fig. 4-16. UNAHE vs. Automatic Linear Transform. Fig. 4-17. Transform Table of the UNAHE CMF. Fig. 4-18. Look-up Tables for a ENAHE Image. Fig. 4-19. ENAHE Image with Histogram. Fig. 4-20. Negate the Image Before the ENAHE, Then Negate Again. Fig. 4-21. Rayleigh Non-adaptive Histogram Equalization. Fig. 4-22. Adaptive Histogram Equalization. Fig. 4-23. Histograms: Original, NAUHE. Fig. 4-24. Adaptive Uniform Histogram Equalization. Fig. 4-25. The Class Summary Showing NegateFrame.



Fig. 5-1. Sketch of a Human Eye. Fig. 5-2. Sampling System. Fig. 5- 3. Quantizing with Fewer Bits Per Pixel.



Fig. 6-1. Sketch Depicting the Relationship Between the Streams. Fig. 6-2. Application for a Buffered Stream. Fig. 6-3. A Sample Save File Dialog.



Fig. 7-1. Save File Dialog. Fig. 7-2. The ProgressFrame. Table 7-1. Effect of GZIP. Fig. 7-3. Chart of RAM and CPU Speed. Table 7-2. Modem Milestones. Fig. 7-4. Modem Bit Rate. Fig. 7-5. Class Tree Showing OpenFrame. Table 7-3. Times for the Loop Interchange. Fig. 7-6. The ProgressFrame.



Fig. 8-1. Example of a One-Dimensional Convolution. Fig. 8-2. Cyclic Convolution. Fig. 8-3. A Convolution, Ignoring the Edges. Fig. 8-4. A No-edge Convolution. Fig. 8-5. The Five Parts of the Image.



Fig. 9-1. Mandrill, average. Fig. 9-2. A Gaussian Density. Fig. 9-3. Convolving the Mandrill. Fig. 9-4. Original and 3x3 Cross Median. Fig. 9-5. Before and After medianSquare3x3. Fig. 9-6. Before and After gauss3x3. Fig. 9- 7. Before and After medianSquare5x5. Fig. 9-8. Before and After medianOctagon5x5. Fig. 9-9. Before and After Application of the medianCross7x7. Fig. 9-10. Before and After Application of the medianDiamond7x7. Fig. 9-11. Before and After the Hybrid-Median Filter. Fig. 9-12. Before and After Median Filtering on Posterization. Fig. 9-13. Before and After 3x3 Median Filtering. Fig. 9-14. Before and After hp1. Fig. 9-15. Hp1. Fig. 9-16. Hp2. Fig. 9-17. Hp4 vs. hp5. Fig. 9-18. Imaging API, Including the SpatialFrame. Fig. 10-1. Before and After Application of laplacian3 and Thresholding. Fig. 10-2. laplacian3. Fig. 10-3. A 3x3 Gaussian. Fig. 10-4. laplacian3 vs. laplacian3Prewitt. Fig. 10-5. The Mexican Hat. Fig. 10-6. Before and After Application of the roberts2. Fig. 10-7. UNHE. Fig. 10-8. Before and After Sobel Filtering. Fig. 10-9. Roberts on the Left, Sobel on the Right. Fig. 10- 10. Roberts vs. Sobel. Fig. 10-11. Roberts vs. Sobel, UNAHE Pre-process, Then Thresholding. Fig. 10-12. The Sobel from 10-11 vs. a Gaussian Prefiltered Sobel. Fig. 10-13. Peppers. Fig. 10-14. Mean Filtering vs. Gaussian Filtering with Sobel Edge Detection. Fig. 10-15. Roberts. Fig. 10-16. Edge Man. Fig. 10- 17. pixelDifference, sobel, separatedPixelDifference and prewitt. Fig. 10-18. Roberts vs. Pixel Difference. Fig. 10-19. Pixel Difference vs. Laplacian. Fig. 10-20. Before and After Frei-Chen. Fig. 10-21. Edge Man with Shot Noise vs. Roberts. Fig. 10-22. Before and After Pixel Difference. Fig. 10-23. Before and After laplacian3. Fig. 10-24. 3x3 Gaussian. Fig. 10-25. Frei-Chen, Prewitt and Separated-Pixel Difference. Fig. 10-26. Before and After medianSquare2x2. Fig. 10-27. Before and after laplacian3. Fig. 10-28. The Threshold Dialog. Fig. 10-29. Before and After a 4-Level Thresholding. Fig. 10-30. Before and After a 9-Level Thresholding.



Fig. 11-1. Erosion Fig. 11-2. The Dilated Mandrill Fig. 11-3. Using (11.21) to Dilate. Fig. 11-4. Before and After the Close Filter. Fig. 11-5. Before and After Close(kSquare) on the Mandrill. Fig. 11-6. Before and after open(kSquare) on the Mandrill. Fig. 11-7. Mandrill. Fig. 11-8. Icons. Fig. 11-9. Before and After Application of Middle Contour. Fig. 11-10. The Array Assignment. Fig. 11-11. Before and After Skeletonization. Fig. 11-12. Before and After Skeletonization. Fig. 11-13. Before and After Skeletonization. Fig. 11-14. The Dual of the Skeleton. Fig. 11-15. Before and After Skeletonization. Fig. 11-16. A Sample Obstacle Course with Skeleton Showing Voronoi. Fig. 11- 17. Erosion Alters the Voronoi. Fig. 12-1. A Box and Its Hough. Fig. 12-2. Hough Transform. Fig. 12-3. Before and After the Hough Lines. Fig. 12-4. Drawing 40 Lines from Hough Space. Fig. 12-5. A Tilted Box and 40 Lines from Hough Space. Fig. 12-6. Forty Point and 200 Point Hough Detection. Fig. 12-7. Edge Man with 20 and 200 Point Hough Detection. Fig. 12-8. Before and After the bugWalk. Fig. 12-9. Before and After Polygon Thinning. Fig. 12-10. The Inverse Roberts Search Space. Fig. 12- 11. Search for a Path Through the Skeleton. Fig. 12-12. Copy the Original Image to the Child Frame. Fig. 12-13. Make a Good Cost Function. Fig. 12-14. Select the Marker Icon.



Fig. 14-1. The AffineFrame. Fig. 14-2. The Quadrilateral. Fig. 14-3. Before and After Scaling in x and y. Fig. 14-4. Scale in x vs. Scale in y. Fig. 14-5. Shear in x vs. Shear in y. Fig. 14-6. Rotation. Fig. 14-7. Scale in the x vs. y Direction. Fig. 14-8. Shear. Fig. 14-9. Shear in the y Direction. Fig. 14-10. Inferring the Transform from 3 Points. Fig. 14-11. Mapping Quadrilaterals to Quadrilaterals. Fig. 14-12. Inferred 4 Point Bilinear Feedback. Fig. 14-13. Conformal Mapping.



Table 15-1. Convolution Times. Fig. 15-1. Edge Man and His FFT. Fig. 15-2. The Xform Menu. Fig. 15-3. The Mandrill and the PSD of the FFT. Fig. 15- 4. A Notch Filter and the Inverse FFT. Fig. 15-5. A Depiction of the Sub-Band Layout. Fig. 15-6. A Sub-Sampling Filter-Bank. Fig. 15-7. Before and After the Integer Haar Transform. Fig. 15-8. Backward Lossy Integer Haar Transform. Fig. 15-9. Using 25% of the Detail for a Reconstruction. Fig. 15-10. Using 75% of the Detail for a Non-Standard Reconstruction. Fig. 15-11. Using 25% of the Detail for a Non-Standard Reconstruction. Fig. 15-12. Using 12% of the Detail for a Non-Standard Reconstruction.



Fig. B-1. The Magnifier Icon. Fig. B-2. Save As Binary Icon. Fig. B- 3. Binary Icon Output as Java. Fig. B-4. The Kahindu Toolbar. Fig. B-5. Using the Magnifier. Fig. B-6. Elements of One Icon Can Be Used in Another. Fig. B- 7. Hand Typing an Icon.



Fig. C-1. Some of the Main Classes in the gui package. Fig. C-2. The Relationship of the Frames in the gui Package. Fig. C-3. The WindowListener Hierarchy. Fig. C-4. The ActionListener Hierarchy. Fig. C-5. The Dialog Hierarchy. Fig. C-6. The FloatPlane Hierarchy.

Erscheint lt. Verlag 25.3.1999
Verlagsort Upper Saddle River
Sprache englisch
Maße 180 x 235 mm
Gewicht 869 g
Themenwelt Mathematik / Informatik Informatik Grafik / Design
Informatik Programmiersprachen / -werkzeuge Java
Mathematik / Informatik Informatik Web / Internet
ISBN-10 0-13-974577-7 / 0139745777
ISBN-13 978-0-13-974577-5 / 9780139745775
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich