2025-06-14[避坑]解决不支持中文路径读取图像的方法
控制台出现的问题:
[ WARN:0@0.027] global loadsave.cpp:241 cv::findDecoder imread_(‘D:\66基于png元素图片查找包含该元素的图片\images\心胜则事成2.png’): can’t open/read file: check file path/integrity
🔍 问题分析
这是 OpenCV 的 cv2.imread() 函数在尝试读取图像文件时失败所输出的警告信息。
报错路径:D:\66基于png元素图片查找包含该元素的图片\images\心胜则事成2.png
关键原因:
文件路径中包含中文字符(如“心胜则事成2.png”);
OpenCV 的 imread 在 Windows 下某些 Python/OpenCV 版本中不支持 Unicode 路径,导致无法正确打开文件。
✅ 解决方案:使用支持中文路径的方法读取图像
你可以通过 Pillow + numpy 来替代 cv2.imread(),以解决中文路径问题。
✅ 修改代码如下:
from PIL import Image
import numpy as np
import cv2def imread_chinese(filepath):"""支持中文路径的图像读取函数"""image = Image.open(filepath).convert('RGB') # 读取图像并转为RGBreturn cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) # 转为OpenCV格式
✅ 补充建议:
避免中文路径
将图像文件重命名为英文/数字命名(例如:image_001.jpg)
检查图像完整性
使用工具批量验证 PNG/JPG 是否损坏
日志记录失败文件
添加日志输出哪些文件加载失败便于排查
兼容性考虑
如果部署环境可能有中文路径,建议始终使用上述 imread_chinese 方法