توضیحاتی در مورد کتاب Digital Image Processing: An Algorithmic Introduction
نام کتاب : Digital Image Processing: An Algorithmic Introduction
ویرایش : Third Edition
عنوان ترجمه شده به فارسی : پردازش تصویر دیجیتال: مقدمه الگوریتمی
سری :
نویسندگان : Wilhelm Burger, Mark J. Burge
ناشر : Springer
سال نشر : 2022
تعداد صفحات : 937
ISBN (شابک) : 9783031057434 , 9783031057441
زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 96 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
فهرست مطالب :
Preface
Contents
Part I Images and Pixels
1 Digital Images
1.1 Programming with Images
1.2 Image Analysis and Computer Vision
1.3 Types of Digital Images
1.4 Image Acquisition
1.4.1 The Pinhole Camera Model
1.4.2 The “Thin” Lens
1.4.3 Going Digital
1.4.4 Image Size and Resolution
1.4.5 Image Coordinate System
1.4.6 Pixel Values
1.5 Image File Formats
1.5.1 Raster Versus Vector Data
1.5.2 Tagged Image File Format (TIFF)
1.5.3 Graphics Interchange Format (GIF)
1.5.4 Portable Network Graphics (PNG)
1.5.5 JPEG
1.5.6 Legacy File Formats
1.5.7 Bits and Bytes
1.6 Software for Digital Imaging
1.7 ImageJ
1.7.1 Key Features
1.7.2 Interactive Tools
1.7.3 Working With ImageJ and Java
1.8 Exercises
2 Histograms and Image Statistics
2.1 What is a Histogram?
2.2 Interpreting Histograms
2.2.1 Image Acquisition
2.2.2 Image Defects
2.3 Calculating Histograms
2.4 Histograms of Images With More Than 8 Bits
2.4.1 Binning
2.4.2 Example
2.4.3 Implementation
2.5 Histograms of Color Images
2.5.1 Intensity Histograms
2.5.2 Individual Color Channel Histograms
2.5.3 Combined Color Histograms
2.6 The Cumulative Histogram
2.7 Statistical Information from the Histogram
2.7.1 Mean and Variance
2.7.2 Median
2.8 Block Statistics
2.8.1 Integral Images
2.8.2 Mean Intensity
2.8.3 Variance
2.8.4 Practical Calculation of Integral Images
2.9 Exercises
3 Point Operations
3.1 Modifying Image Intensity
3.1.1 Contrast and Brightness
3.1.2 Limiting Values by Clamping
3.1.3 Inverting Images
3.1.4 Thresholding Operation
3.2 Point Operations and Histograms
3.3 Automatic Contrast Adjustment
3.4 Modified Auto-Contrast Operation
3.5 Histogram Equalization
3.6 Histogram Specification
3.6.1 Frequencies and Probabilities
3.6.2 Principle of Histogram Specification
3.6.3 Adjusting to a Piecewise Linear Distribution
3.6.4 Adjusting to a Given Histogram (Histogram Matching)
3.6.5 Examples
3.7 Gamma Correction
3.7.1 Why “Gamma”?
3.7.2 Mathematical Definition
3.7.3 Real Gamma Values
3.7.4 Applications of Gamma Correction
3.7.5 Implementation
3.7.6 Modified Gamma Correction
3.8 Point Operations in ImageJ
3.8.1 Point Operations with Lookup Tables
3.8.2 Arithmetic Operations
3.8.3 Point Operations Involving Multiple Images
3.8.4 Methods for Point Operations on Two Images
3.8.5 ImageJ Plugins Involving Multiple Images
3.9 Exercises
Part II Filters, Edges and Corners
4 Filters
4.1 What is a Filter?
4.2 Linear Filters
4.2.1 The Filter Kernel
4.2.2 Applying the Filter
4.2.3 Implementing Filter Operations
4.2.4 Filter Plugin Examples
4.2.5 Integer Coefficients
4.2.6 Filters of Arbitrary Size
4.2.7 Types of Linear Filters
4.3 Formal Properties of Linear Filters
4.3.1 Linear Convolution
4.3.2 Formal Properties of Linear Convolution
4.3.3 Separability of Linear Filters
4.3.4 Impulse Response of a Filter
4.4 Nonlinear Filters
4.4.1 Minimum and Maximum Filters
4.4.2 Median Filter
4.4.3 Weighted Median Filter
4.4.4 Other Nonlinear Filters
4.5 Implementing Filters
4.5.1 Efficiency of Filter Programs
4.5.2 Handling Image Borders
4.5.3 Debugging Filter Programs
4.6 Filter Operations in ImageJ
4.6.1 Linear Filters
4.6.2 Gaussian Filters
4.6.3 Nonlinear Filters
4.7 Exercises
5 Edges and Contours
5.1 What Makes an Edge?
5.2 Gradient-Based Edge Detection
5.2.1 Partial Derivatives and the Gradient
5.2.2 Derivative Filters
5.3 Simple Edge Operators
5.3.1 Prewitt and Sobel Edge Operators
5.3.2 Roberts Edge Operator
5.3.3 Compass Operators
5.3.4 Edge Operators in ImageJ
5.4 Other Edge Operators
5.4.1 Edge Detection Based on Second Derivatives
5.4.2 Edges at Different Scales
5.4.3 From Edges to Contours
5.5 Canny Edge Operator
5.5.1 Preprocessing
5.5.2 Edge Localization
5.5.3 Edge Tracing and Hysteresis Thresholding
5.5.4 Additional Information
5.5.5 Implementation
5.6 Edge Sharpening
5.6.1 Edge Sharpening with the Laplacian Filter
5.6.2 Unsharp Masking
5.7 Exercises
6 Corner Detection
6.1 Points of Interest
6.2 Harris Corner Detector
6.2.1 The Local Structure Matrix
6.2.2 Significance of the Local Structure Matrix
6.2.3 Corner Response Function (CRF)
6.2.4 Selecting Corner Points
6.2.5 Examples
6.3 Alternative Formulations
6.3.1 Shi-Tomasi Corner Score
6.3.2 MOPS Corner Score
6.4 Basic Implementation
6.4.1 Summary
6.5 Sub-Pixel Corner Positions
6.5.1 Position Interpolation by Second-Order Taylor Expansion
6.5.2 Sub-Pixel Positioning Example
6.6 Exercises
Part III Binary Images
7 Morphological Filters
7.1 Shrink and Let Grow
7.1.1 Pixel Neighborhoods
7.2 Basic Morphological Operations
7.2.1 The Structuring Element
7.2.2 Point Sets
7.2.3 Dilation
7.2.4 Erosion
7.2.5 Formal Properties of Dilation and Erosion
7.2.6 Designing Morphological Filters
7.2.7 Application Example: Outline
7.3 Composite Morphological Operations
7.3.1 Opening
7.3.2 Closing
7.3.3 Properties of Opening and Closing
7.4 Thinning (Skeletonization)
7.4.1 Basic Algorithm
7.4.2 Fast Thinning Algorithm
7.4.3 Java Implementation
7.4.4 Built-in Morphological Operations in ImageJ
7.5 Grayscale Morphology
7.5.1 Structuring Elements
7.5.2 Dilation and Erosion
7.5.3 Grayscale Opening and Closing
7.6 Exercises
8 Regions in Binary Images
8.1 Finding Connected Image Regions
8.1.1 Region Labeling by Flood Filling
8.1.2 Sequential Region Segmentation
8.1.3 Region Labeling – Summary
8.2 Region Contours
8.2.1 Outer and Inner Contours
8.2.2 Combining Region Labeling and Contour Detection
8.3 Representing Image Regions
8.3.1 Matrix Representation
8.3.2 Run Length Encoding
8.3.3 Chain Codes
8.4 Properties of Binary Regions
8.4.1 Shape Features
8.4.2 Geometric Features
8.5 Statistical Shape Properties
8.5.1 Centroid
8.5.2 Moments
8.5.3 Central Moments
8.5.4 Normalized Central Moments
8.5.5 Java Implementation
8.6 Moment-Based Geometric Properties
8.6.1 Orientation
8.6.2 Region Eccentricity
8.6.3 Equivalent Ellipse
8.6.4 Bounding Box Aligned to the Major Axis
8.6.5 Invariant Region Moments
8.7 Projections
8.8 Topological Region Properties
8.9 Java Implementation
8.10 Exercises
9 Automatic Thresholding
9.1 Global Histogram-Based Thresholding
9.1.1 Image Statistics from the Histogram
9.1.2 Simple Threshold Selection
9.1.3 Iterative Threshold Selection (Isodata Algorithm)
9.1.4 Otsu’s Method
9.1.5 Maximum Entropy Thresholding
9.1.6 Minimum Error Thresholding
9.2 Local Adaptive Thresholding
9.2.1 Bernsen’s Method
9.2.2 Niblack’s Method
9.3 Java Implementation
9.3.1 Global Thresholding Methods
9.3.2 Adaptive Thresholding
9.4 Summary and Further Reading
9.5 Exercises
Part IV Geometric Primitives
10 Fitting Straight Lines
10.1 Straight Line Equations
10.1.1 Slope-Intercept Form
10.1.2 Parametric (Point-Vector) Form
10.1.3 Algebraic Form
10.1.4 Hessian Normal Form
10.2 Fitting Lines to Points Sets
10.2.1 Linear Regression
10.2.2 Orthogonal Regression
10.3 Example: Contour Segmentation
10.4 Java Implementation
10.5 Exercises
11 Fitting Circles and Ellipses
11.1 Fitting Circles
11.1.1 Circle Equations
11.1.2 Algebraic Circle Fits
11.1.3 Geometric Circle Fitting
11.2 Fitting Ellipses
11.2.1 Algebraic Ellipse Fitting
11.2.2 Geometric Ellipse Fitting
11.2.3 Orthogonal Distance Approximations
11.3 Java Implementation
11.3.1 Circle Fitting
11.3.2 Ellipse Fitting
12 Detecting Geometric Primitives
12.1 Random Sample Consensus (RANSAC)
12.1.1 How Many Random Draws Are Needed?
12.1.2 RANSAC Line Detection Algorithm
12.1.3 Detecting Multiple Lines
12.1.4 RANSAC Circle Detection
12.1.5 RANDSAC Ellipse Detection
12.1.6 RANSAC Extensions and Applications
12.2 The Hough Transform
12.2.1 Parameter Space
12.2.2 Accumulator Map
12.2.3 A Better Line Representation
12.2.4 Hough Algorithm
12.2.5 Hough Transform Extensions
12.2.6 Hough Transform for Circles and Arcs
12.2.7 Hough Transform for Ellipses
12.3 Java Implementation
12.4 Exercises
Part V Color
13 Color Images
13.1 RGB Color Images
13.1.1 Structure of Color Images
13.1.2 Color Images in ImageJ
13.2 Color Spaces and Color Conversion
13.2.1 Conversion to Grayscale
13.2.2 Desaturating RGB Color Images
13.2.3 HSV/HSB and HLS Color Spaces
13.2.4 TV Component Color Spaces: YUV, YIQ, and YCbCr
13.2.5 Color Spaces for Printing: CMY and CMYK
13.3 Statistics of Color Images
13.3.1 How Many Different Colors Are in an Image?
13.3.2 Color Histograms
13.4 Color Quantization
13.4.1 Scalar Color Quantization
13.4.2 Vector Quantization
13.4.3 Java Implementation
13.5 Exercises
14 Colorimetric Color Spaces
14.1 CIE Color Spaces
14.1.1 CIE XYZ Color Space
14.1.2 CIE x, y Chromaticity
14.1.3 Standard Illuminants
14.1.4 Gamut
14.1.5 Variants of the CIE Color Space
14.2 CIELAB Color Space
14.2.1 CIEXYZ → CIELAB Conversion
14.2.2 CIELAB → CIEXYZ Conversion
14.3 CIELUV Color Space
14.3.1 CIEXYZ → CIELUV Conversion
14.3.2 CIELUV→ CIEXYZ Conversion
14.3.3 Measuring Color Differences
14.4 Standard RGB (sRGB)
14.4.1 Linear vs. Nonlinear Color Components
14.4.2 CIEXYZ → sRGB Conversion
14.4.3 sRGB → CIEXYZ Conversion
14.4.4 Calculations with Nonlinear sRGB Values
14.5 Adobe RGB
14.6 Chromatic Adaptation
14.6.1 XYZ Scaling
14.6.2 Bradford Color Adaptation
14.7 Colorimetric Support in Java
14.7.1 Profile Connection Space (PCS)
14.7.2 Color-Related Java Classes
14.7.3 Implementation of the CIELAB Color Space (Example)
14.7.4 ICC Profiles
14.8 Exercises
15 Filters for Color Images
15.1 Linear Filters
15.1.1 Monochromatic Application of Linear Filters
15.1.2 Color Space Matters
15.1.3 Linear Filtering with Circular Values
15.2 Nonlinear Color Filters
15.2.1 Scalar Median Filter
15.2.2 Vector Median Filter
15.2.3 Sharpening Vector Median Filter
15.3 Java Implementation
15.4 Further Reading
15.5 Exercises
16 Edge Detection in Color Images
16.1 Monochromatic Techniques
16.2 Edges in Vector-Valued Images
16.2.1 Multi-Dimensional Gradients
16.2.2 The Jacobian Matrix
16.2.3 Squared Local Contrast
16.2.4 Color Edge Magnitude
16.2.5 Color Edge Orientation
16.2.6 Grayscale Gradients Revisited
16.3 Canny Edge Detector for Color Images
16.4 Other Color Edge Operators
16.5 Java Implementation
16.6 Exercises
17 Edge-Preserving Smoothing Filters
17.1 Kuwahara-Type Filters
17.1.1 Application to Color Images
17.2 Bilateral Filter
17.2.1 Domain Filter
17.2.2 Range Filter
17.2.3 Bilateral Filter: General Idea
17.2.4 Bilateral Filter with Gaussian Kernels
17.2.5 Application to Color Images
17.2.6 Efficient Implementation by x/y Separation
17.2.7 Further Reading
17.3 Anisotropic Diffusion Filters
17.3.1 Homogeneous Diffusion and the Heat Equation
17.3.2 The Perona-Malik Filter
17.3.3 Perona-Malik Filter for Color Images
17.3.4 Geometry Preserving Anisotropic Diffusion
17.3.5 Tschumperlé-Deriche Algorithm
17.4 Java Implementation
17.5 Exercises
Part VI Spectral Techniques
18 Introduction to Spectral Methods
18.1 The Fourier Transform
18.1.1 Sine and Cosine Functions
18.1.2 Fourier Series Representation of Periodic Functions
18.1.3 Fourier Integral
18.1.4 Fourier Spectrum and Transformation
18.1.5 Fourier Transform Pairs
18.1.6 Important Properties of the Fourier Transform
18.2 Working with Discrete Signals
18.2.1 Sampling
Assume
18.3 The Discrete Fourier Transform (DFT)
18.3.1 Definition of the DFT
18.3.2 Discrete Basis Functions
18.3.3 Aliasing Again!
18.3.4 Units in Signal and Frequency Space
18.3.5 Power Spectrum
18.4 Implementing the DFT
18.4.1 Direct Implementation
18.4.2 Fast Fourier Transform (FFT)
18.5 Exercises
19 The Discrete Fourier Transform in 2D
19.1 Definition of the 2D DFT
19.1.1 2D Basis Functions
19.1.2 Implementing the 2D DFT
19.2 Visualizing the 2D Fourier Transform
19.2.1 Range of Spectral Values
19.2.2 Centered Representation of the DFT Spectrum
19.3 Frequencies and Orientation in 2D
19.3.1 Effective Frequency
19.3.2 Frequency Limits and Aliasing in 2D
19.3.3 Orientation
19.3.4 Normalizing the Geometry of the 2D Spectrum
19.3.5 Effects of Periodicity
19.3.6 Windowing
19.3.7 Common Windowing Functions
19.4 2D Fourier Transform Examples
19.5 Applications of the DFT
19.5.1 Linear Filter Operations in Frequency Space
19.5.2 Linear Convolution and Correlation
19.5.3 Inverse Filters
19.6 Exercises
20 The Discrete Cosine Transform (DCT)
20.1 One-Dimensional DCT
20.1.1 DCT Basis Functions
20.1.2 Implementing the 1D DCT
20.2 Two-Dimensional DCT
20.2.1 Examples
20.2.2 Separability
20.3 Java Implementation
20.4 Other Spectral Transforms
20.5 Exercises
Part VII Image Transformations
21 Geometric Operations
21.1 Coordinate Transformations in 2D
21.1.1 Linear Coordinate Transformations
21.1.2 Homogeneous Coordinates
21.1.3 Affine (Three-Point) Mapping
21.1.4 Projective (Four-Point) Mapping
21.1.5 Bilinear Mapping
21.1.6 Log-Polar Mapping
21.1.7 Other Nonlinear Transformations
21.1.8 Piecewise Image Transformations
21.2 Resampling the Image
21.2.1 Source-to-Target Mapping
21.2.2 Target-to-Source Mapping
21.3 Java Implementation
21.3.1 Geometric Transformations
21.3.2 Image Transformations
21.3.3 Examples
21.4 Exercises
22 Pixel Interpolation
22.1 Interpolation in 1D: Simple Methods
22.1.1 Nearest-Neighbor Interpolation
22.1.2 Linear Interpolation
22.1.3 Ideal Low-Pass Filter
22.2 Interpolation by Convolution
22.3 Cubic Interpolation
22.4 Spline Interpolation
22.4.1 Catmull-Rom Interpolation
22.4.2 Cubic B-spline Approximation
22.4.3 Mitchell-Netravali Approximation
22.4.4 Lanczos Interpolation
22.5 Interpolation in 2D
22.5.1 Nearest-Neighbor Interpolation in 2D
22.5.2 Bilinear Interpolation
22.5.3 Bicubic and Spline Interpolation in 2D
22.5.4 Lanczos Interpolation in 2D
22.5.5 Examples and Discussion
22.6 Aliasing
22.6.1 Sampling the Interpolated Image
22.6.2 Space-Variant Low-Pass Filtering
22.7 Java Implementation
22.8 Exercises
Part VIII
Image Matching
23 Image Matching and Registration
23.1 Template Matching in Intensity Images
23.1.1 Distance between Image Patterns
23.1.2 Matching Under Rotation and Scaling
23.1.3 Java Implementation
23.2 Matching Binary Images
23.2.1 Direct Comparison of Binary Images
23.2.2 The Distance Transform
23.2.3 Chamfer Matching
23.2.4 Java Implementation
23.3 Exercises
24 Non-Rigid Image Matching
24.1 The Lucas-Kanade Technique
24.1.1 Registration in 1D
24.1.2 Extension to Multi-Dimensional Functions
24.2 The Lucas-Kanade Algorithm
24.2.1 Summary of the Algorithm
24.3 Inverse Compositional Algorithm
24.4 Linear Transformation Parameters
24.4.1 Pure Translation
24.4.2 Affine Transformation
24.4.3 Projective Transformation
24.4.4 Concatenating Linear Transformations
24.4.5 Coordinate Frames
24.5 Example
24.6 Java Implementation
24.7 Exercises
Part IX Local Features
25 Scale-Invariant Feature Transform (SIFT)
25.1 Interest Points at Multiple Scales
25.1.1 The LoG Filter
25.1.2 Gaussian Scale Space
25.1.3 LoG/DoG Scale Space
25.1.4 Hierarchical Scale Space
25.1.5 Scale Space Structure in SIFT
25.2 Key Point Selection and Refinement
25.2.1 Local Extrema Detection
25.2.2 Position Refinement
25.2.3 Suppressing Responses to Edge-Like Structures
25.3 Creating Local Descriptors
25.3.1 Finding Dominant Orientations
25.3.2 SIFT Descriptor Construction
25.4 SIFT Algorithm Summary
25.5 Matching SIFT Features
25.5.1 Feature Distance and Match Quality
25.5.2 Examples
25.6 Efficient Feature Matching
25.7 Java Implementation
25.7.1 SIFT Feature Extraction
25.7.2 SIFT Feature Matching
25.8 Exercises
26 Maximally Stable Extremal Regions (MSER)
26.1 Threshold Sets and Extremal Regions
26.2 Building the Component Tree
26.2.1 Component Tree Algorithms
26.2.2 Component Tree Algorithm 1: Global Immersion
26.2.3 Component Tree Algorithm 2: Local Flooding
26.2.4 Component Tree Examples
26.3 Extracting MSERs from the Component Tree
26.3.1 Component Size Variation (Growth Rate)
26.3.2 Maximally Stable Components
26.3.3 Constraints on Component Size and Diversity
26.3.4 MSER Feature Statistics and Equivalent Ellipse
26.3.5 Additional Constraints
26.3.6 Detecting Dark And Bright Blobs
26.3.7 MSER Examples
26.4 Matching MSERs
26.5 Local Affine Frames
26.6 Summary
Appendix
Appendix A Mathematical Symbols and Notation
A.1 Symbols
A.2 Sets
A.2.1 Basic Set Symbols and Operators
A.2.2 Destructive Set Operators
A.2.3 Relations, Mappings and Functions
A.3 Sequences
A.3.1 Adding and Removing Elements
A.3.2 “Stack”-Type Sequences
A.3.3 “Queue”-Type Sequences
A.3.4 Sorting Sequences
A.4 Tuples and Objects
A.4.1 Type Definition and Instantiation
A.4.2 Accessing Object Components
A.4.3 Duplication
A.5 Complex Numbers
Appendix B Linear Algebra
B.1 Vectors and Matrices
B.1.1 Column and Row Vectors
B.1.2 Extracting Submatrices and Vectors
B.1.3 Length (Norm) of a Vector
B.2 Matrix Multiplication
B.2.1 Scalar Multiplication
B.2.2 Product of Two Matrices
B.2.3 Matrix-Vector Products
B.3 Vector Products
B.3.1 Dot (Scalar) Product
B.3.2 Outer Product
B.3.3 Cross Product
B.4 Trace and Determinant of a Square Matrix
B.5 Eigenvalues and Eigenvectors
B.5.1 Calculating Eigenvalues
B.5.2 Generalized Symmetric Eigenproblems
B.6 Homogeneous Coordinates
B.7 Basic Matrix-Vector Operations with the Apache Commons Math Library
B.7.1 Vectors and Matrices
B.7.2 Matrix-Vector Multiplication
B.7.3 Vector Products
B.7.4 Inverse of a Square Matrix
B.7.5 Eigenvalues and Eigenvectors
B.8 Solving Systems of Linear Equations
B.8.1 Exact Solutions
B.8.2 Over-Determined System (Least-Squares Solutions)
B.8.3 Solving Homogeneous Linear Systems
Appendix C Nonlinear Least Squares
C.1 Nonlinear Least-Squares Fitting
C.2 Solution Methods
C.2.1 Implementation With Apache Commons Math
C.2.2 Example 1: One-Dimensional Curve Fitting
C.3 Multi-Dimensional NLS Problems
C.3.1 Example 2: Geometric Circle Fitting
C.3.2 Numerical Estimation of Partial Derivatives
Appendix D Elements from Calculus
D.1 Scalar and Vector Fields
D.1.1 The Jacobian Matrix
D.1.2 Gradients
D.1.3 Maximum Gradient Direction
D.1.4 Divergence of a Vector Field
D.1.5 The Laplacian Operator
D.1.6 The Hessian Matrix
D.2 Taylor Series Expansion
D.2.1 Single-Variable Functions
D.2.2 Multi-Variable Functions
D.2.3 Finding Function Extrema by 2nd-Order Taylor Expansion
D.3 Estimating Derivatives of Discrete Functions
D.3.1 First-order Derivatives
D.3.2 Second-Order Derivatives
D.3.3 Alternative Formulations
Appendix E Sub-Pixel Maximum Finding
E.1 Second-Order Interpolation in 1D
E.2 Subpixel Interpolation in 2D
E.2.1 Quadratic Functions in 2D
E.2.2 Method A: Second-Order Taylor Interpolation
E.2.3 Method B: Least-Squares Quadratic Interpolation
E.2.4 Quartic Interpolation
Appendix F Geometry
F.1 Straight Lines
F.1.1 Conversions Between Different Line Equations
F.1.2 Intersections of Algebraic Lines
F.1.3 Intersections of Lines in Hessian Normal Form
F.1.4 Numeric Line Fitting Examples
F.2 Circles
F.2.1 Circle Equations and Conversions
F.2.2 Circle From 3 Points
F.3 Ellipses
F.3.1 Ellipse Equations
F.3.2 Converting Between Algebraic and Geometric Parameters
F.3.3 Ellipse From 5 Points
Appendix G Statistical Prerequisites
G.1 Mean, Variance, and Covariance
G.1.1 Mean
G.1.2 Variance and Covariance
G.1.3 Biased vs. Unbiased Variance
G.2 The Covariance Matrix
G.2.1 Example
G.2.2 Practical Calculation
G.3 Mahalanobis Distance
G.3.1 Definition
G.3.2 Relation to the Euclidean Distance
G.3.3 Numerical Considerations
G.3.4 Pre-Mapping Data For Efficient Mahalanobis Matching
G.4 The Gaussian Distribution
G.4.1 Maximum Likelihood Estimation
G.4.2 Gaussian Mixtures
G.4.3 Creating Gaussian Noise
Appendix H Gaussian Filters
H.1 Cascading Gaussian Filters
H.2 Gaussian Filters and Scale Space
H.3 Effects of Gaussian Filtering in the Frequency Domain
H.4 LoG-Approximation by Difference of Gaussians (DoG)
Appendix I Writing ImageJ Plugins
I.1 ImageJ Plugins
I.1.1 Program Structure
I.1.2 A First Example: Inverting an Image
I.1.3 Plugin My_Inverter_A (PlugInFilter)
I.1.4 Plugin My_Inverter_B (PlugIn)
I.1.5 When To Use PlugIn Or PlugInFilter?
I.1.6 Executing ImageJ “Commands”
I.1.7 ImageJ’s Command Recorder
Appendix J Java Notes
J.1 Arithmetic
J.1.1 Integer Division
J.1.2 Modulus Operator
J.1.3 Mathematical Functions in Class Math
J.1.4 Numerical Rounding
J.1.5 Inverse Tangent Function
J.1.6 Unsigned Byte Data
J.1.7 Classes Float and Double
J.1.8 Testing Floating-Point Values Against Zero
J.2 Arrays
J.2.1 Creating Arrays
J.2.2 Array Size
J.2.3 Accessing Array Elements
J.2.4 2D Arrays
J.2.5 Arrays of Objects
J.2.6 Searching for Minimum and Maximum Values
J.2.7 Sorting Arrays
References
Index
About the Authors