群里有人遇到下面的问题:

从截图中可以看出问题出在函数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型,而不能是浮点型。
本文解析了OpenCV中line()函数参数pt1类型错误问题,指出其期望整型坐标但接收到了浮点型。解决方法是确保坐标值为int类型。
3212

被折叠的 条评论
为什么被折叠?



