oriented_chamfer_distance - Find distance using chamfer metric


#include "g/g_chamfer.h"

Example compile flags (system dependent):
   -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 oriented_chamfer_distance
	Edge_point const ***image_edge_map,
	int num_rows,
	int num_cols,
	const Edge_set *tmplate,
	int offset_row,
	int offset_col,
	double *distance,
	size_t *point_count_out


int num_rows
rows of image_edge_map
int num_cols
columns of image_edge_map
int offset_row
top of template
int offset_col
left edge of template
double *distance
output chamfer distance


Compute the oriented chamfer distance between an input image and an edge template, as described in Shotton, Blake, Cipolla 08, but using the absolute value of the cosine of the difference between the two angles, instead of the absolute difference. Image must be input as a matrix of Edge_point pointers to the nearest edge point at each position. This is output by chamfer_transform_2. num_rows and num_cols describes the size of image_edge_map 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. Distance_out is the computed chamfer distance.


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


Kyle Simek


Kobus Barnard


chamfer_transform , chamfer_transform_2 , sum_sq_distance , chamfer_distance , oriented_sum_sq_distance