我正在尝试使用OpenCV编译用于3d重建的示例代码,我收到以下错误(1)
您可以在此处找到源代码:https://sites.google.com/site/3drecon124/
错误列表
(1)错误C2668:'sqrt':对重载函数的模糊调用
(2)IntelliSense:重载函数“sqrt”的多个实例与参数列表
匹配(3)智能感知:函数调用中的参数太少
答案 0 :(得分:1)
我的建议是编译器无法选择适当的重载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