gpt4 book ai didi

c++ - OpenCV:错误 C3861: 'finite':找不到标识符

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:19 24 4
gpt4 key购买 nike

我正在使用 Julien Pilet 等人编写的开源代码。在标题为“使背景减法对突然的照明变化具有鲁棒性”下。我没有改变任何东西,只是运行它,然后它给了我以下错误:

error C3861: 'finite':identifier not found

我检查过,这个错误发生在“imstat.h”文件中的以下几行:

if (!finite(det) || det<1e-5) {
sigma_computed=false;
n=0;
one_over_sq_det= 1;
memset(sigma,0,sizeof(sigma));
sigma[0][0]=1;
sigma[1][1]=1;
sigma[2][2]=1;
two_ln_sq_det = 2;
} else {
one_over_sq_det = 1/sqrtf(det);
assert(finite(one_over_sq_det));
two_ln_sq_det = 2*log(sqrtf(det));
sigma_computed=true;
n = new_n;
}

“imstat.h”文件包含在“emvisi2.h”文件中的代码中。有人可以帮我理解这个错误吗?似乎某种类定义有问题,但我找不到。谢谢。

最佳答案

finite()是一个过时的 BSD 库函数,您可能会在某些但不是所有版本的 <cmath> 中找到它。 .

如果你有一个 C++11 版本的 <cmath><math.h> 的 C99 版本, 然后是等价的 isfinite()应该可用。这在旧版本的标准库中可能不可用。

Microsoft 似乎也声明了等效的非标准 _finite() <float.h> 中发挥作用.

关于c++ - OpenCV:错误 C3861: 'finite':找不到标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com