我有下面的代码,但它失败了,因为它无法从磁盘读取文件。映像总是None
。
# -*- coding: utf-8 -*-
import cv2
import numpy
bgrImage = cv2.imread(u'D:\\ö\\handschuh.jpg')
注意:我的文件已经保存为UTF-8与BOM。我用记事本++验证。
在Process Monitor中,我看到Python正在从错误的路径访问文件:
我读过:
- Open file with unicode filename,这是关于
open()
函数的,与OpenCV无关。 - How do I read an image file using Python,但这与Unicode问题无关。
6条答案
按热度按时间mf98qq941#
它可以通过以下方式实现
open()
打开所述文件,所述open()
支持Unicode,如在所述链接答案中,z5btuh9x2#
受托马斯Weller答案的启发,还可以使用
np.fromfile()
读取图像并将其转换为ndarray,然后使用cv2.imdecode()
将数组解码为三维numpy ndarray(假设这是一张没有alpha通道的彩色图像):np.fromfile()
将磁盘上的图像转换为numpy一维ndarray表示形式。cv2.imdecode
可以解码此格式并转换为正常的三维图像表示形式。cv2.IMREAD_UNCHANGED
是用于解码的标志。可以在此处找到完整的标志列表。PS.关于如何用unicode字符将图像写入路径,请看这里。
tzcvj98z3#
我把它们复制到了一个临时目录下。我用得很好。
rryofs0p4#
它可以通过以下方式实现
1.保存当前目录
1.更改当前目录到一个图像必须保存
1.保存图像
1.将当前目录更改为步骤1中保存的目录
sg24os4d5#
我的问题与您类似,但是,我的程序将终止于
image = cv2.imread(filename)
语句。我解决这个问题的方法是,首先将文件名编码为utf-8,然后将其解码为
8cdiaqws6#
编码文件到utf-8的完整路径