Beispiel #1
0
int
im_match_linear_search( IMAGE *ref, IMAGE *sec, IMAGE *out,
	int xr1, int yr1, int xs1, int ys1, 
	int xr2, int yr2, int xs2, int ys2,
	int hwindowsize, int hsearchsize )
{
	int xs3, ys3;
	int xs4, ys4;
	double cor1, cor2;

	/* Search for new tie-points.
	 */
	if( im_correl( ref, sec, xr1, yr1, xs1, ys1,
		hwindowsize, hsearchsize, &cor1, &xs3, &ys3 ) )
		return( -1 );
	if( im_correl( ref, sec, xr2, yr2, xs2, ys2,
		hwindowsize, hsearchsize, &cor2, &xs4, &ys4 ) )
		return( -1 );

	/* ... and match_linear.
	 */
	if( im_match_linear( ref, sec, out, 
		xr1, yr1, xs3, ys3, xr2, yr2, xs4, ys4 ) )
		return( -1 );

	return( 0 );
}
/* Call im_match_linear via arg vector.
 */
static int
match_linear_vec( im_object *argv )
{
	int xref1 = *((int *) argv[3]);
	int yref1 = *((int *) argv[4]);
	int xsec1 = *((int *) argv[5]);
	int ysec1 = *((int *) argv[6]);
	int xref2 = *((int *) argv[7]);
	int yref2 = *((int *) argv[8]);
	int xsec2 = *((int *) argv[9]);
	int ysec2 = *((int *) argv[10]);

	return( im_match_linear( argv[0], argv[1], argv[2],
		xref1, yref1, xsec1, ysec1, 
		xref2, yref2, xsec2, ysec2 ) );
}