cv2.error: OpenCV(4.0.1) C:\ci\opencv-suite_1573470242804\work\modules\imgproc\src\drawing.cpp:1811: error: (-215:Assertion failed) 0 < thickness && thickness <= MAX_THICKNESS in function 'cv::line'
时间: 2023-07-09 22:46:30 浏览: 111
这个错误提示是因为thickness参数的值不能小于等于0。cv2.line()函数中的thickness参数表示直线的宽度,如果为-1则表示将直线以实心的形式绘制,但是并不支持thickness小于等于0的情况,因此会报错。
您可以将thickness参数的值改为大于0的整数,例如2,表示将直线以宽度为2的实线形式绘制在原图上。修改后的代码如下:
```
import cv2
import numpy as np
# 读入原图
img = cv2.imread('image.jpg')
# 对img进行处理,得到筛选出的直线lines
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Scharr = cv2.Scharr(gray, cv2.CV_8U, 1, 0)
lines = cv2.HoughLinesP(Scharr, 1, np.pi / 180, 100, minLineLength=300, maxLineGap=20)
# 在img上将所有直线以黑色实线的形式绘制
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 0), thickness=2)
# 显示处理后的图像
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行以上代码,即可得到将筛选出的直线以实线形式绘制后的图像。