群里有人遇到下面的问题:
从截图中可以看出问题出在函数line()的pt1参数上,并且是其类型错误。
OpenCV的函数line()的原型如下:
void cv::line( InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
从这个原型可以看出其参数pt1和pt2的类型为Point,所以去查阅Point类型的定义如下:
typedef Point2i cv::Point
再查阅类型Point2i的定义:
typedef Point_<int> cv::Point2i
可见,其点坐标的类型要求是整型,而群里那位朋友写的值为浮点型,如下:
所以要报错。
总结一下:
OpenCV函数line()的参数pt1和pt2的坐标值数据应该是int型,而不能是浮点型。