我有:
double score = cvMatchContourTrees( CT1, CT2, CV_CONTOUR_TREES_MATCH_I1, 0.0 );
cout<<score<<endl;
返回的值为-1。#IND。除此之外,正值是正常的,如1.34543。
为什么会这样?我该如何解决?
答案 0 :(得分:15)
正如弗雷德里克所说,这是“Not a Number”由在Windows上使用visual studio构建的应用程序格式化的结果。 John D Cook有一个excellent reference:
Windows将NaN显示为-1。#IND(“IND”表示“indeterminate”),而Linux显示为nan。
...
简而言之,如果你得到1.#INF或inf,寻找溢出或除零。如果你得到1.#IND或nan,请查找非法操作。
如果您使用字符串进行任何格式化,请注意截断;我自己处理这些错误时遇到了related issues。
答案 1 :(得分:5)
std::cout << (0/0.f);
// Output: -1.#IND
这是NaN。
答案 2 :(得分:3)
根据我的经验,-1.#IND
来自虚数。因此,执行cout << sqrt(-1.);
时应输出-1.#IND