You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cv2.imread读取图片返回None,路径问题求助

问题分析与解决

核心问题是你直接使用了os.listdir()返回的文件名,没有和文件夹路径拼接成完整文件路径。程序在当前工作目录(你执行命令的Main Folder)下寻找100.png,而这个文件实际在./input/data_1/001目录里,所以cv2.imread和PIL都找不到文件,返回空值。

解决步骤

1. 拼接完整文件路径

把文件夹路径和os.listdir()返回的文件名用os.path.join()拼接,生成完整的图片路径:

## Detect original image dimention
input_clip_url = os.path.join(opts.input_video_url, test_clip_par_folder, clip_name)

image_folder_path = input_clip_url        
image_filenames = os.listdir(image_folder_path)
# 拼接完整路径
full_image_path = os.path.join(image_folder_path, image_filenames[0])
image = cv2.imread(full_image_path)

print("Folder path_"+str(image_folder_path))
print("Image filenames_"+str(image_filenames)) 
print("Full image path_"+str(full_image_path)) 
print("Image read_"+str(image))
## End of detect original image dimention 

2. 可选:添加文件存在性检查

可以提前检查路径是否有效,避免后续报错:

import os.path

if not os.path.isfile(full_image_path):
    print(f"Error: File {full_image_path} does not exist")
else:
    image = cv2.imread(full_image_path)
    if image is not None:
        # 获取图片尺寸
        height, width = image.shape[:2]
        print(f"Image size: {width}x{height}")
    else:
        print("Error: Failed to read image (可能是文件损坏或格式不支持)")

3. 验证结果

修改后,full_image_path会是./input/data_1/001/100.png,程序能正确定位到图片,读取成功后就能获取尺寸了。


内容的提问来源于stack exchange,提问作者Serg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:07:28