AttributeError: ‘NoneType‘ object has no attribute ‘shape‘-中文路径引起错误
在 Windows 系统上,某些 Python 库如 OpenCV 不支持中文路径,当尝试读取包含中文字符的文件路径时会导致读取失败。转换路径为纯英文:确保所有文件路径均为纯英文路径,包括工作目录、输出目录以及所有中间文件的路径。对于已存在的文件和目录,如果名称中含有中文字符,请重新命名以使用纯英文字符。代码调整:在读取图像之前增加检查逻辑,确保图像成功读取后再进行后续处理。错误日志显示无法打开或
·
错误总结与解决方案
问题描述
在执行图像处理任务时遇到了以下问题:
图像无法被正确读取,导致后续处理步骤失败。
具体表现为 OpenCV 的 cv2.imread() 函数返回 None,进而引发
AttributeError: 'NoneType' object has no attribute 'shape'。
错误日志显示无法打开或读取特定路径下的图像文件。
根本原因
中文路径问题:在 Windows 系统上,某些 Python 库如 OpenCV 不支持中文路径,当尝试读取包含中文字符的文件路径时会导致读取失败。
解决方案
转换路径为纯英文:确保所有文件路径均为纯英文路径,包括工作目录、输出目录以及所有中间文件的路径。
检查并修正文件名:对于已存在的文件和目录,如果名称中含有中文字符,请重新命名以使用纯英文字符。
代码调整:在读取图像之前增加检查逻辑,确保图像成功读取后再进行后续处理。
示例代码片段
def png_main(pdf_path):
# ...
for img in os.listdir(tmp):
input_img = cv2.imread(f'{tmp}/{img}')
if input_img is None:
print(f"Failed to read image: {tmp}/{img}")
continue
# ...
更多推荐
所有评论(0)