Class cv::ximgproc::ContourFitting#

Class for ContourFitting algorithms. ContourFitting match two contours $ z_a $ and $ z_b $ minimizing distance. View details

Collaboration diagram for cv::ximgproc::ContourFitting:

Public Member Functions#

Public Member Functions inherited from cv::Algorithm

Return

Name

Description

Algorithm()

~Algorithm()

void

clear()

Clears the algorithm state.

bool

empty()

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.

String

getDefaultName()

void

read(const FileNode & fn)

Reads algorithm parameters from a file storage.

void

save(const String & filename)

void

write(
    const Ptr< FileStorage > & fs,
    const String & name = String() )

void

write(FileStorage & fs)

Stores algorithm parameters in a file storage.

void

write(
    FileStorage & fs,
    const String & name )

Static Public Member Functions#

Static Public Member Functions inherited from cv::Algorithm

Return

Name

Description

static Ptr< _Tp >

load(
    const String & filename,
    const String & objname = String() )

Loads algorithm from the file.

static Ptr< _Tp >

loadFromString(
    const String & strModel,
    const String & objname = String() )

Loads algorithm from a String.

static Ptr< _Tp >

read(const FileNode & fn)

Reads algorithm from the file node.

Additional Inherited Members#

Protected Member Functions inherited from cv::Algorithm

Return

Name

Description

void

writeFormat(FileStorage & fs)

Detailed Description#

Class for ContourFitting algorithms. ContourFitting match two contours \( z_a \) and \( z_b \) minimizing distance.

\[ d(z_a,z_b)=\sum (a_n - s b_n e^{j(n \alpha +\phi )})^2 \]
where \( a_n \) and \( b_n \) are Fourier descriptors of \( z_a \) and \( z_b \) and s is a scaling factor and \( \phi \) is angle rotation and \( \alpha \) is starting point factor adjustement

Constructor & Destructor Documentation#

ContourFitting()#

cv::ximgproc::ContourFitting::ContourFitting(
int ctr = 1024,
int fd = 16 )

Fit two closed curves using fourier descriptors. More details in [242] and [28].

Parameters

  • ctr — number of Fourier descriptors equal to number of contour points after resampling.

  • fd — Contour defining second shape (Target).

Member Function Documentation#

distance()#

double cv::ximgproc::ContourFitting::distance(
std::complex< double > r,
double alpha )

fAlpha()#

void cv::ximgproc::ContourFitting::fAlpha(
double x,
double & fn,
double & df )

frequencyInit()#

void cv::ximgproc::ContourFitting::frequencyInit()

newtonRaphson()#

double cv::ximgproc::ContourFitting::newtonRaphson(
double x1,
double x2 )

estimateTransformation()#

void cv::ximgproc::ContourFitting::estimateTransformation(
InputArray src,
InputArray dst,
OutputArray alphaPhiST,
double & dist,
bool fdContour = false )

Fit two closed curves using fourier descriptors. More details in [242] and [28].

Parameters

  • src — Contour defining first shape.

  • dst — Contour defining second shape (Target).

  • alphaPhiST — : \( \alpha \)=alphaPhiST(0,0), \( \phi \)=alphaPhiST(0,1) (in radian), s=alphaPhiST(0,2), Tx=alphaPhiST(0,3), Ty=alphaPhiST(0,4) rotation center

  • dist — distance between src and dst after matching.

  • fdContour — false then src and dst are contours and true src and dst are fourier descriptors.

estimateTransformation()#

void cv::ximgproc::ContourFitting::estimateTransformation(
InputArray src,
InputArray dst,
OutputArray alphaPhiST,
double * dist = 0,
bool fdContour = false )

Fit two closed curves using fourier descriptors. More details in [242] and [28].

Parameters

  • src — Contour defining first shape.

  • dst — Contour defining second shape (Target).

  • alphaPhiST — : \( \alpha \)=alphaPhiST(0,0), \( \phi \)=alphaPhiST(0,1) (in radian), s=alphaPhiST(0,2), Tx=alphaPhiST(0,3), Ty=alphaPhiST(0,4) rotation center

  • dist — distance between src and dst after matching.

  • fdContour — false then src and dst are contours and true src and dst are fourier descriptors.

getCtrSize()#

int cv::ximgproc::ContourFitting::getCtrSize()

Returns

number of fourier descriptors

getFDSize()#

int cv::ximgproc::ContourFitting::getFDSize()

Returns

number of fourier descriptors used for optimal curve matching

setCtrSize()#

void cv::ximgproc::ContourFitting::setCtrSize(int n)

set number of Fourier descriptors used in estimateTransformation

Parameters

  • n — number of Fourier descriptors equal to number of contour points after resampling.

setFDSize()#

void cv::ximgproc::ContourFitting::setFDSize(int n)

set number of Fourier descriptors when estimateTransformation used vector

Parameters

  • n — number of fourier descriptors used for optimal curve matching.

Member Data Documentation#

a#

std::vector< std::complex< double > > cv::ximgproc::ContourFitting::a

b#

std::vector< std::complex< double > > cv::ximgproc::ContourFitting::b

ctrSize#

int cv::ximgproc::ContourFitting::ctrSize

fdSize#

int cv::ximgproc::ContourFitting::fdSize

frequence#

std::vector< double > cv::ximgproc::ContourFitting::frequence

psi#

std::vector< double > cv::ximgproc::ContourFitting::psi

rho#

std::vector< double > cv::ximgproc::ContourFitting::rho

Source file#

The documentation for this class was generated from the following file: