在排除:
- 文件路径有问题:路径中是否包含特殊字符或中文字符,有可能导致读取失败。
- 文件格式问题:确认文件是标准的图像格式(如
.jpg
,.png
)。 - 文件权限问题:确认您的代码对文件有读取权限。
在排除这些问题之后,还是报错可能是OpenCV自身问题,尝试用PIL代替OpenCV,可以使用AI直接让它代替读取图片
import os import cv2 folder_path = os.path.abspath(r'C:\Users\熊康哲\Desktop\Train_Custom_Dataset-main\图像分类\1-构建自己的图像分类数据集\fruit81_split\train\西瓜') N = 36 images = [] if not os.path.exists(folder_path): print(f"文件夹路径 {folder_path} 不存在。") else: for each_img in os.listdir(folder_path)[:N]: img_path = os.path.join(folder_path, each_img) print(f"正在处理文件: {img_path}") img_bgr = cv2.imread(img_path) if img_bgr is None: print(f"无法读取图像: {img_path}") continue img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) images.append(img_rgb) print(f"成功处理了 {len(images)} 张图像。")
案例: from PIL import Image images=[] for each_img in os.listdir(folder_path)[:N]: img_path = os.path.join(folder_path, each_img) if os.path.isfile(img_path): try: img = Image.open(img_path) img_rgb = img.convert('RGB') images.append(img_rgb) print(f"Successfully read image: {img_path}") except Exception as e: print(f"Error processing image {img_path}: {e}") else: print(f"Invalid file path: {img_path}") print(f"Total images read: {len(images)}")