OpenCV读取同目录PNG流程图失败报错的原因及解决方法
问题原因排查与解决办法
可能的原因
- VS Code工作目录与脚本所在目录不一致:即使图片和脚本在同一文件夹,如果VS Code的工作目录是上级文件夹,相对路径
flowchart.png会指向工作目录下的文件,而非脚本所在目录。 - 文件名/路径错误:包括拼写错误、大小写不匹配(Linux/macOS系统区分文件名大小写)、后缀错误(比如实际是
.PNG而非.png)。 - 图片文件损坏:
flowchart.png本身已损坏,无法被图片浏览器或OpenCV正常读取。 - 文件权限不足:当前用户没有该图片文件的读取权限,或文件被其他程序锁定占用。
对应的解决办法
- 使用绝对路径读取图片:通过脚本自身路径拼接图片路径,确保指向正确位置:
import os import cv2 # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接图片路径 img_path = os.path.join(script_dir, "flowchart.png") # 读取图片 img = cv2.imread(img_path) # 提前判断是否读取成功 if img is None: raise ValueError(f"无法读取图片,请检查路径是否正确:{img_path}") - 核对文件名与路径:打开文件管理器,确认图片文件名和代码中使用的完全一致;如果是Linux/macOS系统,注意区分大小写(比如
FlowChart.png和flowchart.png是两个不同文件)。 - 验证图片完整性:用系统自带的图片浏览器打开
flowchart.png,确认能正常显示;如果损坏,重新获取或修复该图片文件。 - 检查文件权限:
- Windows系统:右键图片文件 → 属性 → 安全,确保当前用户拥有读取权限。
- Linux/macOS系统:在终端执行
ls -l flowchart.png查看权限,若缺少读取权限,执行chmod +r flowchart.png添加读取权限;同时确认文件未被其他程序占用。
- 调试路径:在读取图片前打印路径,确认路径是否正确:
print("当前图片路径:", img_path)
内容的提问来源于stack exchange,提问作者Kanchana Kariyawasam
相关产品推荐
相关产品推荐

