NAME

chamfer_distance - Compute the chamfer distance between an input image and an edge template.

SYNOPSIS

#include "g/g_chamfer.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


int chamfer_distance
(
	const Matrix *chamfer_image,
	const Edge_set *tmplate,
	int offset_row,
	int offset_col,
	double dist_bound,
	double *distance_out,
	size_t *point_count_out
);

DESCRIPTION

Image must be input as a chamfer transformed image output by chamfer_transform(). Template must be input as an Edge_point linked list like that output by detect_edge_points. Offset_{x,y} is the position of the top-left of the template. dist_bound truncates overly large distances so edge pixels missing due to noise don't overly affect the distance measure. Setting dist_bound to 0 disables truncation. Distance_out is the chamfer distance. If dist_bound > 0, the result is homogenized to [0, dist_bound] Point_count_out is the number of edge points used to compute the distance. Useful if you'll be taking an average later on. Passing NULL ignores this argument.

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Kyle Simek

DOCUMENTER

Kobus Barnard

SEE ALSO

chamfer_transform , chamfer_transform_2 , sum_sq_distance , oriented_sum_sq_distance , oriented_chamfer_distance