Introduction
Images and Pictures
What Is Image Processing?
Image Acquisition and Sampling
Images and Digital Images
Some Applications
Image Processing Operations
An Image Processing Task
Types of Digital Images
Image File Sizes
Image Perception
Images Files and File Types
Opening and Viewing Grayscale Images
RGB Images
Indexed Color Images
Numeric Types and Conversions
Image Files and Formats
Programs
Image Display
Introduction
The imshow Function
Bit Planes
Spatial Resolution
Quantization and Dithering
Programs
Point Processing
Introduction
Arithmetic Operations
Histograms
Lookup Tables
Neighborhood Processing
Introduction
Notation
Filtering in MATLAB and Octave
Filtering in Python
Frequencies; Low and High Pass Filters
Gaussian Filters
Edge Sharpening
Non-Linear Filters
Edge-Preserving Blurring Filters
Region of Interest Processing
Programs
Image Geometry
Interpolation of Data
Image Interpolation
General Interpolation
Enlargement by Spatial Filtering
Scaling Smaller
Rotation
Correcting Image Distortion
The Fourier Transform
Introduction
Background
The One-Dimensional Discrete Fourier Transform
Properties of the One-Dimensional DFT
The Two-Dimensional DFT
Experimenting with Fourier Transforms
Fourier Transforms of Synthetic Images
Filtering in the Frequency Domain
Homomorphic Filtering
Programs
Image Restoration
Introduction
Noise
Cleaning Salt and Pepper Noise
Cleaning Gaussian Noise
Removal of Periodic Noise
Inverse
Wiener Filtering
Image Segmentation
Introduction
Thresholding
Applications of Thresholding
Choosing an Appropriate Threshold Value
Adaptive Thresholding
Edge Detection
Derivatives and Edges
Second Derivatives
The Canny Edge Detector
Corner Detection
The Hough and Radon Transforms
Mathematical Morphology
Introduction
Basic Ideas
Dilation and Erosion
Opening and Closing
The Hit-or-Miss Transform
Some Morphological Algorithms
A Note on the bwmorph Function in MATLAB and Octave
Grayscale Morphology
Applications of Grayscale Morphology
Programs
Image Topology
Introduction
Neighbors and Adjacency
Paths and Components
Equivalence Relations
Component Labeling
Lookup Tables
Distances and Metrics
Skeletonization
Programs
Shapes and Boundaries
Introduction
Chain Codes and Shape Numbers
Fourier Descriptors
Color Processing
What Is Color?
Color Models
Manipulating Color Images
Pseudocoloring
Processing of Color Images
Programs
Image Coding and Compression
Lossless and Lossy Compression
Huffman Coding
Run Length Encoding
Dictionary Coding: LZW Compression
The JPEG Algorithm
Programs
Wavelets
Waves and Wavelets
A Simple Wavelet: The Haar Wavelet
Wavelets and Images
The Daubechies Wavelets
Image Compression Using Wavelets
High Pass Filtering Using Wavelets
Denoising Using Wavelets
Special Effects
Polar Coordinates
Ripple Effects
General Distortion Effects
Pixel Effects
Color Images
Appendix A: Introduction to MATLAB and Octave
Appendix B: Introduction to Python
Appendix C: The Fast Fourier Transform
Bibliography
Index