error: (-215:Assertion failed) npoints > 0 in function 'cv::drawContours'
时间: 2023-11-27 11:46:23 浏览: 159
JAVA OpenCV Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale….
该错误是由于在使用OpenCV的drawContours函数时,传递的轮廓点数为0导致的。这通常是由于没有正确找到轮廓或者没有将轮廓转换为整数类型数组所导致的。可以通过检查轮廓是否为空或者使用cv2.findContours函数来解决此问题。以下是一个例子:
```python
import cv2
# 读取图像并转换为灰度图像
img = cv2.imread('example.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)
# 绘制轮廓
if len(contours) > 0:
cv2.drawContours(img, contours, -1, (0, 0, 255), 3)
else:
print("未找到轮廓")
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文