python - python中的OpenCV cvtColor问题
问题描述
我正在尝试按照此处的教程进行操作,但我不断收到以下错误。我在这个 stackoverflow 帖子中读到问题是因为cvtColor
只需要 8 位或 16 位图像。
我的图像是来自plt.savefig()
matplotlib 的 png,我认为它是 24 位图像。
1) 我对问题的诊断是正确的还是完全错误的?
2)假设1)是真的,我一直在寻找将24位图像变成8/16位的方法,但到目前为止我还没有找到任何东西。我的 matplotlib 图是从保存为array.npy
文件的 numpy 数组中保存的图片。我应该尝试修改array.npy
文件吗?
教程代码供参考:
import cv2 as cv
im = cv.imread("binary_graph_8.png")
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
ret, thresh = cv.threshold(imgray, 127, 255, 0)
im2, contours, hierarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
错误信息:
File "C:/Users/ek247/.PyCharm2018.3/config/scratches/scratch_1.py", line 5, in <module>
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
解决方案
请检查此条目的答案,因为这是我在回复您时的想法:
函数'cvtColor'错误中的OpenCV!_src.empty()
发生此错误是因为图像未正确加载。所以你对上一行 cv2.imread 有问题,我的建议是:
- check if the images exist in the path you give - check the count variable if he have valid number
我希望它对你有帮助。
推荐阅读
- reactjs - VSCode 不会在远程服务器上的断点处停止
- javascript - 如何在json中访问类中的变量
- html - 使粘性表格标题随水平滚动移动
- javascript - 页面未在 div 溢出时滚动
- apache-spark - 使用 pyspark 在 Bigquery 中将数据编码为 ISO_8859_1
- reactjs - 将数组保存到本地存储(reactjs)
- r - R Studio - 如何在接下来的 7 天内在另一列中添加值计数?
- javascript - 如何将 JSON 转换为 ES6 Map?
- java - Hibernate - 按列分组,收集到列表和限制
- c# - 为什么我的相机使用 lerp 挡在两个位置之间?