这段代码有什么意义?

vgo*_*anz 3 c++ opencv

我正在研究OpenCV的代码,然后我遇到了接下来的几行:

函数的var是:

CvMat* _err;
CvMat* _mask;
int i, count = _err->rows*_err->cols, goodCount = 0;
 for( i = 0; i < count; i++ )
    goodCount += mask[i] = err[i] <= threshold;    // This line is strange for me
return goodCount;
Run Code Online (Sandbox Code Playgroud)

我指出的那条线实际上做了什么?因为,叫我奇怪,我从未见过这样的事情.

供您参考:

  • 是的,代码正在运行:D
  • 代码是CvModelEstimator2::findInliers函数的一部分.

Luc*_*ore 8

那条线是邪恶的.

然而,它分配1mask[i]if err[i] <= threshold0否.

然后,goodCount如果条件成立则递增.

mask[i] = (err[i] <= threshold);
goodCount += mask[i];
Run Code Online (Sandbox Code Playgroud)