error C2668: “sqrt”: 对重载函数的调用不明确
result=(double)sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])+\(pixel[1]-pixel[2])*(pix...
result = (double)sqrt(( pixel[0] - pixel[3] )*( pixel[0] - pixel[3] ) + \
( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));
1>c:\documents and settings\n\桌面\chengxu\plateloc\车牌定位\edgecontour.cpp(111) : error C2668: “sqrt”: 对重载函数的调用不明确
1> c:\program files\microsoft visual studio 8\vc\include\math.h(581): 可能是“long double sqrt(long double)”
1> c:\program files\microsoft visual studio 8\vc\include\math.h(533): 或“float sqrt(float)”
1> c:\program files\microsoft visual studio 8\vc\include\math.h(128): 或“double sqrt(double)”
1> 试图匹配参数列表“(int)”时
unsigned char pixel 像素值 展开
( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));
1>c:\documents and settings\n\桌面\chengxu\plateloc\车牌定位\edgecontour.cpp(111) : error C2668: “sqrt”: 对重载函数的调用不明确
1> c:\program files\microsoft visual studio 8\vc\include\math.h(581): 可能是“long double sqrt(long double)”
1> c:\program files\microsoft visual studio 8\vc\include\math.h(533): 或“float sqrt(float)”
1> c:\program files\microsoft visual studio 8\vc\include\math.h(128): 或“double sqrt(double)”
1> 试图匹配参数列表“(int)”时
unsigned char pixel 像素值 展开
2个回答
展开全部
这是因为pixel是整型吧,需要将参数强制装换成(double),结果自然是double了。
result = sqrt((double)( pixel[0] - pixel[3] )*( pixel[0] - pixel[3] ) + ( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));
result = sqrt((double)( pixel[0] - pixel[3] )*( pixel[0] - pixel[3] ) + ( pixel[1] - pixel[2] )*( pixel[1] - pixel[2] ));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询