cv2.polylines(img,lines,False, (0,0,255), 3) cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\drawing.cpp:2434: error: (-215:Assertion failed) p.checkVector(2, CV_32S) >= 0 in function 'cv::polylines'报错了
时间: 2023-07-23 19:28:30 浏览: 549
这个错误提示是因为 `cv2.polylines()` 函数的第二个参数需要传入一个由多个线段组成的列表,每个线段都是一个由点坐标组成的列表或者数组。而你传入的 `lines` 可能不符合这个要求,导致出现了这个错误。
你可以检查一下 `lines` 是否是一个由多个线段组成的列表,每个线段都是一个由点坐标组成的列表或者数组。如果不是,你需要修改 `lines` 的格式,使其符合要求。例如,你可以将 `lines` 改为一个包含三个线段的列表,每个线段都是一个包含两个点的列表,如下所示:
```
lines = [[[10, 10], [100, 100]], [[20, 20], [200, 20]], [[30, 30], [30, 300]]]
cv2.polylines(img, lines, False, (0,0,255), 3)
```
这样应该就可以正常运行了。如果你的 `lines` 格式不同,你需要相应地修改代码,使其符合 `cv2.polylines()` 函数的要求。
相关问题
cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'polylines'
这个错误通常是由于传递给函数的参数不正确引起的。请检查你传递给cv2.polylines()函数的参数是否正确。
其中一个可能的原因是你传递给函数的点集不正确,可能包含无效值或者点的数量不正确。请确保传递给函数的点集是正确的,并且每个点都是一个有效的坐标值。
另外,还有一些其他的可能导致这个错误的原因,比如你传递给函数的线宽度不正确或者你传递给函数的颜色不是一个有效的RGB或BGR值。请检查你传递给函数的所有参数,并确保它们都是正确的。
如果你仍然无法解决这个问题,请提供更多的上下文和代码片段,以便更好地理解问题并提供帮助。
cv2.polylines(img,[rot_rec],True,(255,0,0),2) 什么意思
这行代码使用 OpenCV 的函数 `cv2.polylines()` 在图像 `img` 上绘制多边形,多边形的顶点由 `rot_rec` 指定。参数 `True` 表示绘制闭合的多边形,`(255,0,0)` 是绘制的颜色,`(2)` 是线条的宽度。其中,`rot_rec` 是一个包含旋转矩形四个顶点坐标的 numpy 数组,通常由 `cv2.minAreaRect()` 函数计算得到。这行代码的作用是绘制一个旋转矩形的轮廓,通常用于目标检测等任务中。
阅读全文