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

含日文文件名的TIFF文件无法被OpenCV读取问题求助

OpenCV读取含日文路径TIFF文件报错的解决方法

问题情况

  • 用OpenCV读取带日文的TIFF文件(比如FAX注文0004.tif)时,会抛出错误:TypeError: Image data of dtype object cannot be converted to float
  • 把文件名改成不含日文的FAX0004.tif,就能正常读取
  • 原测试代码:
import matplotlib.pyplot as plt
import cv2

image_path = r"FAX注文0004.tif"    
image = cv2.imread(image_path)

plt.imshow(image)
plt.axis('off')  
plt.show()

问题根源

OpenCV的cv2.imread()函数对包含非ASCII字符(比如日文)的文件路径支持不佳,无法正确解析路径,导致返回None。而plt.imshow()拿到None(数据类型为object)时,就会触发这个类型错误。

解决办法

方法1:用OpenCV解码API读取(推荐)

改用cv2.imdecode()配合numpy.fromfile()读取,能正确处理带非ASCII字符的路径:

import matplotlib.pyplot as plt
import cv2
import numpy as np

image_path = r"FAX注文0004.tif"
# 读取文件字节流并解码为图像
image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), cv2.IMREAD_COLOR)

plt.imshow(image)
plt.axis('off')
plt.show()

方法2:修改文件名(应急用)

如果场景允许,直接把含日文的文件名改成纯英文/数字命名(比如FAX0004.tif),原代码就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:17:08