python中的OpenCV cvtColor问题
我试图按照教程,我不断得到以下错误。我读到这个问题是因为python中的OpenCV cvtColor问题,python,opencv,Python,Opencv,我试图按照教程,我不断得到以下错误。我读到这个问题是因为cvtColor只拍摄8位或16位图像 我的图像是一个png,来自matplotlib中的plt.savefig(),我认为它是一个24位图像 1) 我对问题的诊断是正确的还是完全错误的 2) 假设1)为真,我一直在寻找将24位图像转换为8/16位的方法,但到目前为止我还没有找到任何方法。我的matplotlib绘图是从numpy数组保存的图片,该数组保存为array.npy文件。我应该改为修改array.npy文件吗 教程代码供参考: i
cvtColor
只拍摄8位或16位图像
我的图像是一个png,来自matplotlib中的plt.savefig()
,我认为它是一个24位图像
1) 我对问题的诊断是正确的还是完全错误的
2) 假设1)为真,我一直在寻找将24位图像转换为8/16位的方法,但到目前为止我还没有找到任何方法。我的matplotlib绘图是从numpy数组保存的图片,该数组保存为array.npy
文件。我应该改为修改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'
文件“C:/Users/ek247/.PyCharm2018.3/config/scratch/scratch_1.py”,第5行,在
imgray=cv.CVT颜色(im,cv.COLOR\U BGR2GRAY)
cv2.error:OpenCV(4.0.0)C:\projects\opencvpython\OpenCV\modules\imgproc\src\color.cpp:181:error:(-215:断言失败)_函数“cv::cvtColor”中的src.empty()
请检查此条目的答案,因为这正是我在回答您时的想法:
发生此错误是因为图像加载不正确。那么你呢
前一行cv2有问题。我的建议是:
- check if the images exist in the path you give
- check the count variable if he have valid number
我希望它能帮助你。你说你的图像是PNG,但你的代码打开了JPEG?一般来说,人们在说8位和24位图像时的意思是一样的,因为红色、绿色和蓝色样本的每个样本8位表示每个像素24位。我的图像是PNG,但是我直接发布了使用JPEG的教程中的代码。@MarkSetchell我继续上传了图片并复制了我的代码,而不是教程中的代码,事后看来,这似乎是更明智的做法!您的映像不是空的断言失败。因此,唯一可能的解释是,您的图像是空的,即它没有加载,因此路径可能不正确。您是对的。我只是试着打印出
im
,结果却一无所获。我想知道为什么图像是空的,但至少我不再被卡住了!原来我的图像是空的……实际上我一直都在将python加载到错误的文件夹中:(愚蠢的错误——有时会发生这种情况。这是我对它进行成像的第一件事,但它们有助于学习。)祝你好运!!