cv2.imread()读取当前文件夹图片始终返回None,路径无中文求助
解决OpenCV 4.9.0中cv2.imread返回None的问题
确认当前工作目录
Python脚本的执行目录不一定是脚本所在文件夹,先打印当前工作目录验证:import os print(os.getcwd())如果输出路径和
3.png所在目录不一致,要么切换工作目录,要么用绝对路径拼接图片路径:import cv2 import os # 获取脚本所在绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接图片路径 img_path = os.path.join(script_dir, '3.png') img = cv2.imread(img_path) print(img)验证图片格式与完整性
- 检查文件是否真为PNG格式:有些文件后缀改了但实际是其他格式,OpenCV可能读取失败。可以用系统图片查看器确认格式,或者读取文件二进制内容判断是否为空:
with open('./3.png', 'rb') as f: print(len(f.read())) # 输出0则说明文件为空或损坏 - 确认图片未损坏:尝试用系统自带工具打开
3.png,如果无法显示,说明文件损坏,需重新获取。
- 检查文件是否真为PNG格式:有些文件后缀改了但实际是其他格式,OpenCV可能读取失败。可以用系统图片查看器确认格式,或者读取文件二进制内容判断是否为空:
尝试指定读取标志
部分PNG(比如带透明通道的)可能需要明确指定读取标志:# 读取包含透明通道的完整图片 img = cv2.imread('./3.png', cv2.IMREAD_UNCHANGED) # 或强制读取为彩色图 img = cv2.imread('./3.png', cv2.IMREAD_COLOR)
内容的提问来源于stack exchange,提问作者lml
相关产品推荐
相关产品推荐

