Operators

# fourier_1dim (Operator)

## Name

fourier_1dim — Calculate the Fourier coefficients of a parameterized contour.

## Warning

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

## Signature

fourier_1dim( : : Rows, Columns, ParContour, MaxCoef : RealCoef, ImaginaryCoef)

## Description

The operator fourier_1dim calculates the Fourier coefficients of a parameterized contour by using a valid parameter scale. This parameter scale may, for instance, be created with the help of the operator prep_contour_fourier. This function serves to calculate the Fourier coefficients of closed contours which are treated like complex-valued curves. Therefore, in order to determine the Fourier coefficients, the Fourier transform for periodical functions is used. Hereby the parameter MaxCoef determines the absolute value + 1 of the maximal number of Fourier coefficients, i.e. if n coefficients are indicated, the operator will calculate coefficients ranging from -n to n. The contour will be approximated without loss, if n = number of the contour points, whereby n = 100 approximates the contour so well that an error can hardly be distinguished; n in [40,50] however is sufficient for most applications. If the parameter MaxCoef is set to 0, all coefficients will be determined.

## Parallelization

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Processed without parallelization.

## Parameters

Rows (input_control)  contour.y-array (integer)

Row coordinates of the contour.

Columns (input_control)  contour.x-array (integer)

Column coordinates of the contour.

ParContour (input_control)  real-array (real)

Parameter scale.

MaxCoef (input_control)  integer (integer)

Desired number of Fourier coefficients or all of them (0).

Default value: 50

Suggested values: 0, 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200, 400

Restriction: MaxCoef >= 0

RealCoef (output_control)  real-array (real)

Real parts of the Fourier coefficients.

ImaginaryCoef (output_control)  real-array (real)

Imaginary parts of the Fourier coefficients.

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

```get_region_contour(single,&row,&col);
move_contour_orig(row,col,&trow,&tcol);
prep_contour_fourier(trow,tcol,"unsigned_area",&param_scale);
fourier_1dim(trow,tcol,param_scale,&frow,&fcol);
invar_fourier_coeff(frow,fcol,1,"affine_invar",&invrow,&invcol);
abs_invar_fourier_coeff(invrow,invcol,1,2,"az_invar1",&absrow,&abscol);
```

## Module

Foundation

 Operators