Next:
Contents
Contents
Gandalf: The Fast Computer Vision and Numerical Library
Philip F McLauchlan
Imagineer Systems Ltd.
Contents
Introduction
Conventions and style
Function/name prefixes and case
``Quick'', ``slow'' and ``in-place'' Gandalf routines
Variable argument list functions
Dynamic self-modification
Coordinate pair ordering
Pixel values
Image orientation
Error checking
The Common Package
Miscellaneous definitions
Simple types
Types with specific bit sizes
Debugging tools
Linked lists
Bit arrays
Memory allocation
Array fill/copy
Complex numbers
Numerical routines
Comparison routines
Error handling
More on the error trace
Error tests and codes
The Linear Algebra Package
Fixed size matrices and vectors
Fixed size vectors
Creating and accessing fixed size vectors
Fixed size vector addition
Fixed size vector subtraction
Rescaling a fixed size vector
Fixed size vector products
Fixed size vector file I/O
Conversion from general to fixed size vector
Single precision fixed size vectors
Other types of fixed size vector
Other sizes of fixed size vector
Setting/extracting parts of fixed size vectors
Fixed size matrices
Definitions of fixed size matrice
Creating and accessing fixed size matrices
Fixed size matrix addition
Fixed size matrix subtraction
Rescaling a fixed size matrix
Transposing a fixed size matrix
Fixed size vector outer products
Fixed size matrix/vector multiplication
Fixed size matrix/matrix multiplication
Fixed size matrix inverse
Determinant, trace, norms of fixed size matrix
Fixed size matrix decompositions
Fixed size matrix file I/O
Conversion from general to fixed size matrix
Single precision fixed size matrices
General size matrices and vectors
General size vectors
Creating and freeing general size vectors
Adjusting the size of a general size vector
Filling a general size vector with values
Accessing the elements of a general size vector
Copying a general size vector
General size vector addition
General size vector subtraction
Rescaling a general size vector
General size matrices
Creating and freeing general size matrices
Adjusting the size of a general size matrix
Filling a general size matrix with values
Accessing the elements of a general size matrix
Copying a general size matrix
Transposing a general size matrix
General size matrix addition
General size matrix subtraction
Rescaling a general size matrix
General size matrix/vector multiplication
General size matrix/matrix multiplication
Inverting a general size matrix
Cholesky factorising a general size symmetric matrix
Symmetric matrix eigendecomposition
Accumulated symmetric matrix eigendecomposition
Single precision general size matrices & vectors
The Image Package
Image formats and types
Simple image/pixel routines
Image creation/destruction
Image file I/O
Setting an image to a new format, type and dimensions
Accessing single pixels
Filling an image with a constant value
Converting a pixel to a given format/type
Binary images
Pointer images
Copying/converting the whole or part of an image
Accessing channels of an image
Displaying images
Image pyramids
Inverting an image
Image sequence I/O
The Vision Package
Cameras
Building cameras
Projecting points and lines
Adding/removing camera distortion
Building the camera calibration matrix
Converting cameras between precisions
Computing the fundamental/essential matrix
Computing a homography between 2D scene and image
Computing a 2D homography from an array of feature matches
Computing a 2D affine homography
Computing a homography between 3D scene and image
Smoothing an image using a 1D convolution mask
Smoothing an image using a 2D convolution mask
Feature detection
Image feature coordinate frames
Edge detection
Displaying an edge map
The Canny edge detector
Corner detection
Displaying a corner map
The Harris corner detector
Line segment detection
Displaying a line map
The Gandalf line detector
Representing 3D rotations
Quaternion routines
General rotation routines
Representing 3D Euclidean transformations
Levenberg-Marquardt minimisation
Robust observations
Generalised observations
Levenberg-Marquardt software
Fast Hough Transform
The Fast Hough Transform (FHT)
Notation
The FHT Algorithm
Example: Line Fitting
Example: Plane Fitting
Calculating the Intersection of a Plane and a Sphere
Calculating the Plane Parameters of a Child Cube
Formal Statement of the FHT Plane Fitting Algorithm
Speed Improvement to FHT Line Finder
Formal Statement of Algorithm
Comparision of Speed and Memory Requirement with Standard FHT
Complexity Comparison of FHT and MFHT
The Test Framework
Adding new tests
Bibliography
About this document ...
2006-03-17