cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\drawing.cpp:2605: error: (-215:Assertion failed) reader.ptr != NULL in function 'cvDrawContours'
时间: 2023-06-30 21:08:28 浏览: 853
opencv-4.7.0-android-sdk.zip
这个错误提示意味着在绘制轮廓时没有正确指定轮廓的输入图像。请确保使用`cv2.findContours()`找到了正确的轮廓,然后在调用`cv2.drawContours()`时指定了正确的输入图像。
以下是一个简单的示例代码,演示如何找到并绘制图像中的轮廓:
```python
import cv2
# 读取输入图像
img = cv2.imread('input.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
# 显示结果
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,在上面的代码中,`cv2.findContours()`返回两个值:轮廓和层次结构。`cv2.drawContours()`需要轮廓作为第二个参数,因此我们只传递了`contours`。如果你还想使用层次结构,你可以将它传递给`cv2.drawContours()`作为第三个参数。
阅读全文