ClassesClassesClassesClasses | | | | Operators

abs_invar_fourier_coeffT_abs_invar_fourier_coeffAbsInvarFourierCoeffabs_invar_fourier_coeffAbsInvarFourierCoeffAbsInvarFourierCoeff (Operator)

Name

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

Warning

abs_invar_fourier_coeffabs_invar_fourier_coeffAbsInvarFourierCoeffabs_invar_fourier_coeffAbsInvarFourierCoeffAbsInvarFourierCoeff is obsolete and is only provided for reasons of backward compatibility.

Signature

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

Herror T_abs_invar_fourier_coeff(const Htuple RealInvar, const Htuple ImaginaryInvar, const Htuple CoefP, const Htuple CoefQ, const Htuple AZInvar, Htuple* RealAbsInvar, Htuple* ImaginaryAbsInvar)

Herror abs_invar_fourier_coeff(const HTuple& RealInvar, const HTuple& ImaginaryInvar, const HTuple& CoefP, const HTuple& CoefQ, const HTuple& AZInvar, HTuple* RealAbsInvar, HTuple* ImaginaryAbsInvar)

void AbsInvarFourierCoeff(const HTuple& RealInvar, const HTuple& ImaginaryInvar, const HTuple& CoefP, const HTuple& CoefQ, const HTuple& AZInvar, HTuple* RealAbsInvar, HTuple* ImaginaryAbsInvar)

static HTuple HMisc::AbsInvarFourierCoeff(const HTuple& RealInvar, const HTuple& ImaginaryInvar, Hlong CoefP, Hlong CoefQ, const HString& AZInvar, HTuple* ImaginaryAbsInvar)

static HTuple HMisc::AbsInvarFourierCoeff(const HTuple& RealInvar, const HTuple& ImaginaryInvar, Hlong CoefP, Hlong CoefQ, const char* AZInvar, HTuple* ImaginaryAbsInvar)

void HOperatorSetX.AbsInvarFourierCoeff(
[in] VARIANT RealInvar, [in] VARIANT ImaginaryInvar, [in] VARIANT CoefP, [in] VARIANT CoefQ, [in] VARIANT AZInvar, [out] VARIANT* RealAbsInvar, [out] VARIANT* ImaginaryAbsInvar)

VARIANT HMiscX.AbsInvarFourierCoeff(
[in] VARIANT RealInvar, [in] VARIANT ImaginaryInvar, [in] Hlong CoefP, [in] Hlong CoefQ, [in] BSTR AZInvar, [out] VARIANT* ImaginaryAbsInvar)

static void HOperatorSet.AbsInvarFourierCoeff(HTuple realInvar, HTuple imaginaryInvar, HTuple coefP, HTuple coefQ, HTuple AZInvar, out HTuple realAbsInvar, out HTuple imaginaryAbsInvar)

static HTuple HMisc.AbsInvarFourierCoeff(HTuple realInvar, HTuple imaginaryInvar, int coefP, int coefQ, string AZInvar, out HTuple imaginaryAbsInvar)

Description

The operator abs_invar_fourier_coeffabs_invar_fourier_coeffAbsInvarFourierCoeffabs_invar_fourier_coeffAbsInvarFourierCoeffAbsInvarFourierCoeff 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_contourget_region_contourGetRegionContourget_region_contourGetRegionContourGetRegionContour 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.

For the input Fourier coefficients (RealInvarRealInvarRealInvarRealInvarRealInvarrealInvar, ImaginaryInvarImaginaryInvarImaginaryInvarImaginaryInvarImaginaryInvarimaginaryInvar) only odd numbers of parameter values are allowed.

Parallelization

Parameters

RealInvarRealInvarRealInvarRealInvarRealInvarrealInvar (input_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Real parts of the normalized Fourier coefficients.

ImaginaryInvarImaginaryInvarImaginaryInvarImaginaryInvarImaginaryInvarimaginaryInvar (input_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Imaginary parts of the normalized Fourier coefficients.

CoefPCoefPCoefPCoefPCoefPcoefP (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Normalizing coefficients p.

Default value: 1

Suggested values: 1, 2

Restriction: CoefP >= 1

CoefQCoefQCoefQCoefQCoefQcoefQ (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Normalizing coefficients q.

Default value: 1

Suggested values: 1, 2

Restriction: CoefQ >= 1 && CoefQ != CoefP

AZInvarAZInvarAZInvarAZInvarAZInvarAZInvar (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Order of the AZ-invariants.

Default value: 'abs_amount' "abs_amount" "abs_amount" "abs_amount" "abs_amount" "abs_amount"

List of values: 'abs_amount'"abs_amount""abs_amount""abs_amount""abs_amount""abs_amount", 'az_invar1'"az_invar1""az_invar1""az_invar1""az_invar1""az_invar1"

RealAbsInvarRealAbsInvarRealAbsInvarRealAbsInvarRealAbsInvarrealAbsInvar (output_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Real parts of the normalized Fourier coefficients.

ImaginaryAbsInvarImaginaryAbsInvarImaginaryAbsInvarImaginaryAbsInvarImaginaryAbsInvarimaginaryAbsInvar (output_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Imaginary parts of the normalized Fourier coefficients.

Example (C++ (HALCON 5.0-10.0))

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);

Module

Foundation


ClassesClassesClassesClasses | | | | Operators