Overload resolution failed:> - Can‘t parse ‘pt‘. Sequence item with index 0 has a wrong type
搜了各种问题,有人说cv2版本问题不兼容,但是卸载重新装了后依旧报错;有人说报错因为一张图里出现多个目标检测内容所以报错巴拉巴拉,但依旧没啥用。原因其实是cv2这个版本无法绘制float型的图,只能绘制int型,所以把所有的数字部分全部类型转化为int()型即可。
·
最近用yolo做目标检测的时候测试碰到了一个奇葩的报错:
cv2.error: OpenCV(4.5.2) :-1: error: (-5:Bad argument) in function 'pointPolygonTest'
> Overload resolution failed:
> - Can't parse 'pt'. Sequence item with index 0 has a wrong type
> - Can't parse 'pt'. Sequence item with index 0 has a wrong type
...
...
搜了各种问题,有人说cv2版本问题不兼容,但是卸载重新装了后依旧报错;有人说报错因为一张图里出现多个目标检测内容所以报错巴拉巴拉,但依旧没啥用。。。
直到刷到这个博主的解决方案,救了大命了,再次一万个感谢!
参考链接:
cv2.rectangle(img, (x1,y1), (np.float32(c3[0]), np.float32(c3[1])), rgb, -1)
img = cv2.putText(img, msg, (c1[0], np.float32(c1[1] - 2)), cv2.FONT_HERSHEY_SIMPLEX,0.7, (0,0,0), bbox_thick//2,lineType=cv2.LINE_AA)
原因其实是cv2这个版本无法绘制float型的图,只能绘制int型,所以把所有的数字部分全部类型转化为int()型即可,那么修改后的代码如下:
cv2.rectangle(img, (x1, y1), (int(np.float32(c3[0])), int(np.float32(c3[1]))), rgb, -1)
img = cv2.putText(img, msg, (c1[0], int(np.float32(c1[1] - 2))), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0),bbox_thick // 2, lineType=cv2.LINE_AA)
完美解决。成功输出结果。
此类报错提示都可以优先考虑数据类型原因,基本全改为int()类型即可。
更多推荐
所有评论(0)