NAME

chamfer_transform_2 - Alternate chamfer transform

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_transform_2
(
	const Edge_set *points,
	int num_rows,
	int num_cols,
	int size,
	Matrix **distances_out,
	Edge_point ****edge_map
);

DESCRIPTION

Alternate form of chamfer_transform the gives more informative output when a fill edge point list is available instead of just a binary edge image. Input is a linked-list of edge points, the dimensions of the original image, and a neighborhood size (see chamfer_transform for explanation of neighborhood size). Output is a matrix of distances to the nearest edge point, and a 2D array of pointers to the nearest edge point. The 2D pointer array can be freed using free_2D_ptr_array(). This does not free the edge points in "points", which must be freed separately.

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 , sum_sq_distance , chamfer_distance , oriented_sum_sq_distance , oriented_chamfer_distance