糖尿病视网膜病变检测代码报错:cv2显示图像提示文件不存在
解决cv2加载图像时的[Errno 2]文件不存在错误
错误核心原因
[Errno 2] No such file or directory 本质是代码指定的图像路径无效:要么路径拼写有误,要么目标文件实际不存在,或是相对路径的基准工作目录和你预期的不一致。
针对性解决步骤
- 核对路径拼写:仔细检查
cv2.imread()中的路径字符串,确保文件名、文件夹名无大小写错误(Linux/macOS系统区分大小写),也没有多余空格或特殊符号。 - 验证文件存在性:手动前往代码指定的路径,确认目标图像确实存在。如果用的是相对路径,可在代码开头加一行
import os; print(os.getcwd()),打印当前工作目录,再判断图像路径是否相对于该目录正确。 - 改用绝对路径:相对路径容易出问题的话,直接写入图像的绝对路径(比如
C:/retina_project/images/scan_01.jpg或/home/user/retina_images/scan_01.jpg),彻底规避路径基准的问题。
实现表格形式展示图像的建议
cv2本身不擅长表格布局,推荐结合matplotlib实现需求,示例代码如下:
import cv2 import matplotlib.pyplot as plt import os # 替换为你的图像文件夹路径 img_dir = "绝对路径/相对路径到图像文件夹" # 筛选出图像文件 img_files = [f for f in os.listdir(img_dir) if f.endswith(('.jpg', '.png', '.jpeg'))] # 设置表格布局:4列,自动计算行数 cols = 4 rows = (len(img_files) + cols - 1) // cols # 创建子图网格 fig, axes = plt.subplots(rows, cols, figsize=(16, 12)) axes = axes.flatten() # 逐个加载并显示图像 for idx, img_name in enumerate(img_files): img_path = os.path.join(img_dir, img_name) img = cv2.imread(img_path) # cv2默认BGR格式,转RGB适配matplotlib img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) axes[idx].imshow(img_rgb) axes[idx].set_title(img_name) axes[idx].axis('off') # 隐藏多余的空单元格 for idx in range(len(img_files), len(axes)): axes[idx].axis('off') plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者Riddhi Parasnaik
相关产品推荐
相关产品推荐

