abs_invar_fourier_coeff ( : : RealInvar, ImaginaryInvar, CoefP, CoefQ, AZInvar : RealAbsInvar, ImaginaryAbsInvar )

Normalizing of the Fourier coefficients with respect to the displacment of the starting point.

The operator abs_invar_fourier_coeff normalizes the Fourier coefficients with regard to the displacements of the starting point. These occur when an object is rotated. The contour tracer get_region_contour starts with recording the contour in the upper lefthand corner of the region and follows the contour clockwise. If the object is rotated, the starting value for the contour point chain is different which leads to a phase shift in the frequency space. The following two kinds of normalizing are available:

  abs_amount:  The phase information will be eliminated; the 
               normalizing does not retain the structure, i.e.\ if 
               the AZ-invariants are backtransformed, no
               similarity with the pattern can be recognized 
               anymore.
  az_invar1:   AZ-invariants of the 1st order execute the normalizing
               with respect to displacing the starting point so that
               the structure is retained; they are however
               more prone to local and global disturbances,
               in particular to projective distortions.


Parameters

RealInvar (input_control)
real-array -> real
Real parts of the normalized Fourier coefficients.

ImaginaryInvar (input_control)
real-array -> real
Imaginary parts of the normalized Fourier coefficients.

CoefP (input_control)
integer -> integer
Normalizing coefficients p.
Default value: 1
Suggested values: 1, 2
Restriction: CoefP >= 1

CoefQ (input_control)
integer -> integer
Normalizing coefficients q.
Default value: 1
Suggested values: 1, 2
Restriction: (CoefQ >= 1) && (CoefQ != CoefP)

AZInvar (input_control)
string -> string
Order of the AZ-invariants.
Default value: 'abs_amount'
List of values: 'abs_amount', 'az_invar1'

RealAbsInvar (output_control)
real-array -> real
Real parts of the normalized Fourier coefficients.

ImaginaryAbsInvar (output_control)
real-array -> real
Imaginary parts of the normalized Fourier coefficients.


Example
get_region_contour(single,&row,&col);
length_of_contour = length_tuple(row);
move_contour_orig(row,col,&trow,&tcol); 
prep_contour_fourier(trow,tcol,"unsigned_area",&param_scale);
fourier_1dim(trow,tcol,param_scale,50,&frow,&fcol);
invar_fourier_coeff(frow,fcol,1,"affine_invar",&invrow,&invcol);
abs_invar_fourier_coeff(invrow,invcol,1,2,"az_invar1",&absrow,&abscol);
fourier_1dim_inv(absrow,abscol,length_of_contour,&fsynrow,&fsyncol);

Parallelization Information

abs_invar_fourier_coeff is reentrant and processed without parallelization.


Possible Predecessors

invar_fourier_coeff


Possible Successors

fourier_1dim_inv, match_fourier_coeff


Module

Fourier descriptors



Copyright © 1996-2005 MVTec Software GmbH