OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\contours.cpp:197:
时间: 2023-09-21 15:05:15 浏览: 153
这个错误信息看起来是 OpenCV 的一个版本问题,可能是在使用 OpenCV 库的时候出现了问题。请确保你的 OpenCV 版本正确,并且库文件已经正确链接。还有,你可以尝试查看一下 contours.cpp 文件的第 197 行,看看是否有明显的错误。如果问题仍然存在,可以考虑更新或重新安装 OpenCV 库来解决该问题。
相关问题
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'
这个错误提示意味着在绘制轮廓时没有正确指定轮廓的输入图像。请确保使用`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()`作为第三个参数。
cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\contours.cpp:197: error: (-210:Unsupported format or combination of formats) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function 'cvStartFindContours_Impl'
这个错误是由于你提供的图像格式不支持在给定的模式下使用cv2.findContours()函数。在这种情况下,你需要检查以下几个方面:
1. 确保你的图像是灰度图像或二值图像,因为cv2.findContours()函数仅支持8位灰度或二值图像。
2. 确保你的图像格式与cv2.findContours()函数的模式兼容。如果使用了CV_RETR_FLOODFILL模式,则需要使用8位灰度图像。如果使用了其他模式,则需要使用32位整型图像。
3. 确保你的图像尺寸和深度与cv2.findContours()函数的输入要求相同。
如果以上步骤都检查过了,但仍然出现错误,则建议检查一下opencv-python库的版本是否正确。
阅读全文