警告C4244:'参数':从'double'转换为'int',可能会丢失数据

时间:2015-02-18 12:41:38

标签: c++ opencv

我正在进行人脸识别,并在编译时遇到错误。 我显示窗口框架的代码如下:

int pos_x = std::max(face_i.tl().x - 10, 0);
int pos_y = std::max(face_i.tl().y - 10, 0);
putText(original, box_text, Point(pos_x, pos_y), FONT_HERSHEY_PLAIN, 1.0, CV_RGB(0,255,0), 2.0);

我在第三行遇到此错误:warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data

如何编辑我的代码来解决这个问题?

2 个答案:

答案 0 :(得分:3)

根据documentation,第七个参数是

int thickness = 1

您正在传递浮点文字2.0,需要将其转换为int,并且您的编译器已配置为警告此类"缩小"转换。这是一个好主意,因为它们经常会导致错误。

最佳解决方案是传递一个不需要转换的整数文字2

答案 1 :(得分:0)

我猜这是最后一个论点,2.0尝试只写2