Main Page   Modules   Compound List   File List   Compound Members   File Members  

modified_fht2D.h File Reference

#include <gandalf/common/bit_array.h>

Go to the source code of this file.

Functions

Gan_Bool gan_modified_fht2D (double *x, double *y, int *weight, int no_points, double m_range, double c_range, double c_root, int max_level, int T_thres, Gan_MemoryStack *memory_stack, double *m_best, double *c_best, int *level_best, int *accum_best, Gan_BitArray *list_best)
 General purpose FHT line finder function.


Detailed Description

Module: Fast Hough Transform implentation

Part of: Gandalf Library

Revision: Last edited: Author:

Copyright: (c) 2000 Imagineer Software Limited


Function Documentation

Gan_Bool gan_modified_fht2D double *    x,
double *    y,
int *    weight,
int    no_points,
double    m_range,
double    c_range,
double    c_root,
int    max_level,
int    T_thres,
Gan_MemoryStack   memory_stack,
double *    m_best,
double *    c_best,
int *    level_best,
int *    accum_best,
Gan_BitArray   list_best
 

General purpose FHT line finder function.

Parameters:
x Array of x-coordinates of data points
y Array of y-coordinates of data points
weight Array of weights assigned to each point
no_points Number of data points
m_range Range of line gradient
c_range Range of line intercept
c_root Centre point of intercept for root hypercube
max_level Maximum subdivision level
T_thres Threshold T in FHT for deciding whether to subdivide
memory_stack Pointer to memory stack structure
m_best Output gradient of best-fit line
c_best Output intercept of best-fit line
level_best Output subdivision level reached by FHT
accum_best Output sum of weights of points with lines intersecting final hypersphere
list_best Output bit-list, with 1's for points involved in best-fit result
Uses parametrisation

where are the coordinates of a point on a plane and are gradient/intercept line parameters. Each point can be thought of as defining a line

in space, each point on the line in space representing a line in space passing through the point . The FHT starts with a root "hypercube" (in this case a rectangle) in space defined by

and subdivides into 2x2 "child" hypercubes, checking each child to see whether enough lines (greater than a threshold) intersect a hypersphere circumscribed around the hypercube. In fact the slightly more general approach here allows a weight to be assigned to each point, and the threshold is applied to the sum of weights of intersecting lines.

This is a depth-first version of the FHT, i.e. the child hypercubes are subdivided exhaustively before trying another child. This minimises memory requirement by limiting it to


Generated on Mon Oct 13 16:14:45 2003 by doxygen1.3-rc1