Image Processing and Computer Vision
2.0
Image Processing
1. Images
1.1. Image Formation
1.2. Image Definition
1.3. Image Discretization
1.3.1. Quantization
1.3.2. Sampling
1.4. Image Interpolation
1.4.1. Interpolating 1D functions
1.4.2. Interpolating 2D functions
1.5. Image Extrapolation aka the Border Problem
1.6. Image Representation
1.6.1. Coordinates and Indices
1.6.2. Color Images
1.6.3. Domain Iterators
1.7. Image Histograms
1.7.1. Univariate Histogram
1.7.2. Multivariate Histograms
2. Color
2.1. Colorimetry
2.1.1. The physics of color
2.1.2. The perception of color
2.1.3. Spectral versus Color Space
2.1.4. Chromaticity Coordinates
2.1.5. Color matching experiment
2.1.6. The XYZ color model
2.2. Color Models
2.2.1. RGB Color Model
3. Point Operators
3.1. Image Arithmetic
3.1.1. Definition
3.1.2. Python/Numpy
3.1.3. Practical Use
3.1.4. Exercises
3.2. Histogram Based Image Operations
3.2.1. Contrast Stretching
3.2.2. Histogram Equalization
3.2.3. Thresholding
4. Geometrical Operators
4.1. Forward Transform
4.2. Backward Transform
4.3. Geometrical Transform in Scikit-Image
5. Local Operators
5.1. Local Operators in Python
5.2. Linear Operators: Convolutions
5.2.1. Linearity Definition
5.2.2. Translation Invariance
5.2.3. Linearity + Translation Invariance
\(\Rightarrow\)
Convolutions
5.2.4. Convolutions and Correlations
5.2.5. Convolutions in the Continuous Domain
5.2.6. Properties of the Convolution Operator
5.2.7. Often Used Convolutions
5.2.8. Exercises
5.3. Morphological Image Operators
5.3.1. Definition
5.4. Percentile Filtering
5.4.1. Definition
5.4.2. Algorithms
5.5. Bilateral Filtering
5.5.1. Definition
5.5.2. Algorithms
5.5.3. Bilateral filtering of color images
5.5.4. Theoretical Considerations
6. Local Structure
6.1. Gaussian Convolutions and Derivatives
6.1.1. Properties of the Gaussian Convolution
6.1.2. Derivatives of Sampled Functions
6.1.3. More about Algorithms for Gaussian Convolutions
6.2. Local Structure
6.2.1. Gradient Gauge Coordinate System
6.2.2. Curvature Gauge Coordinate System
6.3. Subpixel Localization of Local Structure
6.3.1. Isophotes — Contour Lines
6.3.2. Edges
6.3.3. Lines
6.3.4. X-Corners
6.3.5. Concluding (computational) remarks
7. Scale Space
7.1. Linear Scale Space
7.2. Linear Diffusion
7.3. Sampling Linear Scale-Space
7.3.1. Direct versus Incremental Calculation
7.3.2. Pyramids
7.4. Exercises
Computer Vision
1. The Pinhole Camera
1.1. Projective Geometry
1.1.1. Projective Geometry in 2D
1.1.2. Projective Geometry in 3D
1.2. The Pinhole Camera Matrix
1.2.1. The Camera Projection Matrix
1.2.2. The Internal and External Camera Matrices
1.3. Camera Calibration
1.3.1. Estimating the Camera Matrix using the DLT
1.4. Projectivities
1.4.1. A plane in 3D
1.4.2. The rotating camera
1.5. Exercises
2. Stereo Vision
2.1. Triangulation
2.2. Epipolar Geometry and the Fundamental Matrix
3. Images in Motion
3.1. Optic Flow
3.2. Motion Tracking
3.2.1. Correlation Tracking
3.3. Exercises
4. Convolutional Neural Networks
4.1. A Brief History of Object Classification and CNN’s
4.1.1. Old AI and CV Paradigm: “Model the world”
4.1.2. Statistics and machine learning: the bag of visual words model
4.1.3. The CNN comes in: “Model the brain”
4.1.4. Success has many fathers
4.2. Recap Machine Learning and Neural Networks
4.2.1. Supervised Machine Learning
4.2.2. Fully Connected Neural Network
4.3. From fully connected network to convolutional network
4.4. Convolutional Neural Network
4.4.1. Back Propagation for the Convolution Module
4.4.2. A Convolutional Layer in a CNN
4.5. Max Pooling
4.6. Exercises
Mathematical Tools
1. Mean and Median Values
1.1. The mean value
1.2. The weighted mean value
1.3. The median value
1.4. The weighted median value
2. Multivariate Functions
2.1. Plotting a multivariate function
2.2. Differentiating a multivariate function
2.3. Symbolic Math Computations
3. Linear Algebra Recap
3.1. Vectors
3.2. Basis Vectors
3.3. Linear Mappings
3.4. Matrices
3.5. Linear Equations, Determinants and Inverse Matrices
3.6. Vector Norm, Inner Products, Orthogonality and the Cross Product
3.7. Eigenvectors and Eigenvalues
3.8. Singular Value Decomposition
4. Least Squares Estimators
4.1. Fitting a straight line
4.2. Least Squares Estimators
4.3. Examples of least squares estimators
4.3.1. 2nd-order polynomial
4.3.2. Multivariate polynomials
5. Homogeneous Coordinates
5.1. Homogeneous coordinates in 2D space
5.1.1. Rigid Body Transformation
5.1.2. Affine Transformations
5.1.3. Projective Transforms
5.1.4. Overview of 2D Transforms
5.2. Lines in 2D projective space
5.3. Points at infinity
5.4. Coordinate (Frame) Transforms
5.5. Estimating Parameters
5.5.1. Estimating an Affine Transform using LSQ
5.5.2. Estimating a Projective Transform using the DLT
5.6. Exercises
Image Processing and Computer Vision
Overview: module code
All modules for which code is available
ipcv.ip.pixels