Python 3.9.13+Win10环境下cv2.imread读取图片失败求助
解决OpenCV读取图片返回None的问题
核心问题定位与修正
你的代码里有两个直接导致读取失败或报错的错误:
- 文件名拼写错误:
cv2.imread('cat.jpg,', 3)中文件名末尾多了一个逗号,这会让OpenCV找不到正确的文件,直接返回None。 - 函数调用错误:导入的是
cv2库,但后续调用显示窗口时用了cv.imshow,应该改为cv2.imshow。
修正后的完整代码
import cv2 import numpy as np import matplotlib.pyplot as plt # 修正文件名,移除多余逗号 img = cv2.imread('cat.jpg', 3) print(img) if img is not None: # 修正函数调用前缀为cv2 cv2.imshow('cat', img) # OpenCV读取的是BGR格式,转换为RGB适配matplotlib显示 img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img_rgb) plt.show() # 等待按键输入后关闭OpenCV窗口 cv2.waitKey(0) cv2.destroyAllWindows() else: print("图片读取失败,请检查文件路径或完整性")
额外排查建议(若修正后仍有问题)
- 确认工作目录:可以在代码开头加入
import os; print(os.getcwd()),打印当前脚本运行的工作目录,确保cat.jpg确实在该路径下;也可以直接使用图片的绝对路径,比如C:/your_path/cat.jpg(注意用正斜杠或双反斜杠)。 - 检查文件完整性:用系统自带的图片查看器打开
cat.jpg,确认文件没有损坏。 - 关于opencv-python-headless:该版本不包含GUI组件,
cv2.imshow无法正常工作,若需要显示图片窗口,建议卸载后安装标准版opencv-python。
内容的提问来源于stack exchange,提问作者hit701
相关产品推荐
相关产品推荐

