cv :: TermCriteria如何在opencv中工作?

Eng*_*ine 10 c++ opencv

我想使用opencv函数cv::cornerSubPix() ,因为我需要另一个,cv::TermCriteria 我的问题是关于这个函数的最后一个参数:

cv::TermCriteria(cv::TermCriteria::MAX_ITER +
                cv::TermCriteria::EPS,
                50, // max number of iterations
                0.0001)); // min accuracy
Run Code Online (Sandbox Code Playgroud)

这里的最小精度是什么意思?

小智 9

TermCriteria的结构是

TermCriteria(

int type, // CV_TERMCRIT_ITER, CV_TERMCRIT_EPS, or both

int maxCount,

double epsilon
);
Run Code Online (Sandbox Code Playgroud)

通常我们使用TermCriteria()函数来生成我们需要的结构.该函数的第一个参数是CV_TERMCRIT_ITERCV_TERMCRIT_EPS,它告诉算法我们想要在一定次数的迭代之后或者当收敛度量达到某个小值(分别)时终止.接下来的两个参数设置这些标准中的一个,另一个或两个应该终止算法的值.

我们有这两个选项的原因是我们可以将类型设置为CV_TERMCRIT_ITER | CV_TERMCRIT_EPS因此在达到任一限制时停止.


小智 0

TermCriteria 的 OpenCV 文档位于http://docs.opencv.org/modules/core/doc/basic_structs.html#termcriteria最后一个参数是 epsilon。有些算法是迭代的,当达到所需的精度时就会停止。

在此处查找 cv::cornerSubPix() 函数的实现https://github.com/Itseez/opencv/blob/master/modules/imgproc/src/cornersubpix.cpp