OpenCV 3d重建:编译错误对重载函数的调用不明确

OpenCV 3d重建:编译错误对重载函数的调用不明确,opencv,3d,Opencv,3d,我正试图用OpenCV编译一个3d重建的示例代码,我得到了以下错误(1) 您可以在此处找到源代码: 错误列表 (1) 错误C2668:“sqrt”:对重载函数的调用不明确 (2) IntelliSense:重载函数“sqrt”的多个实例与参数列表匹配 (3) IntelliSense:函数调用中的参数太少我的建议是编译器无法选择适当的重载sqrt函数 请尝试显式指定操作数的类型: sqrt(double(T_pts[i].x*T_pts[i].x + T_pts[i].y*T_pts[i].y)

我正试图用OpenCV编译一个3d重建的示例代码,我得到了以下错误(1)

您可以在此处找到源代码:

错误列表

(1) 错误C2668:“sqrt”:对重载函数的调用不明确

(2) IntelliSense:重载函数“sqrt”的多个实例与参数列表匹配


(3) IntelliSense:函数调用中的参数太少

我的建议是编译器无法选择适当的重载
sqrt
函数

请尝试显式指定操作数的类型:

sqrt(double(T_pts[i].x*T_pts[i].x + T_pts[i].y*T_pts[i].y));
...
float scale=sqrt(2.0)/meandist.val[0];
而不是:

dist[i]=sqrt(T_pts[i].x*T_pts[i].x+T_pts[i].y*T_pts[i].y); // It won't hurt to specify operand type

float scale=sqrt(2)/meandist.val[0]; // here '2' has int type