opencv中cv2.imread()返回值为None
windows10 + anaconda3 + python3.6 + opencv3.4
图片读入
import cv2
img = cv2.imread("liushishi.jpg")
print(img) # 返回值为None,按道理说,应该返回矩阵
第一步,百度
百度说是路径问题,尝试了相对路径和绝对路径,卒。
第二步,百度
百度说是路径中含有中文,我就写相对路径,根本没有中文啊
第三步,百度
百度说是图片不完全是.jpg格式,可能只是后缀是.jpg。要用到PIL中的Image.open("filepath").convert("RGB")。依旧卒.
第四步,自闭
自闭了一会儿,发现我全局路径中有中文啊,虽然相对路径没有中文,试了一下,成功了。
cv2.imread 返回值为None的一种大坑可能
用python版OpenCV这么久,基本上什么坑都踩过。
这次读取tif文件的时候,RGBA的图像可以正常读取,二值图死活读取返回值为None,路径并无中文,给绝对路径也读不出来。
最后发现是版本问题,不知道cv2的imread函数内部有什么bug,用pip install --upgrade opencv-python从3.4更新到4.2就好了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。