我们在Windows上遇到了一个OpenCV的问题,即打开(和写入)包含非ASCII字符的文件路径。受影响的函数有:
据我所见,在OpenCV源代码中,它甚至在Windows上使用
我看到了关于使用OpenCV读取带有外文字符的问题OpenCV imread with foreign characters和imread(openCV),QString unicodes,但仍然不明白解决这个问题的正确方法。从上面的问题中,我看到可能有一些使用
附言:我们不使用QT。
cv::imread()
,cv::imwrite()
等。据我所见,在OpenCV源代码中,它甚至在Windows上使用
fopen
(而不是_wfopen
),而且据我所知,fopen
在Windows上无法处理非ASCII字符。
我看到了关于使用OpenCV读取带有外文字符的问题OpenCV imread with foreign characters和imread(openCV),QString unicodes,但仍然不明白解决这个问题的正确方法。从上面的问题中,我看到可能有一些使用
QString
的技巧,但如果它起作用,它到底是如何将Unicode字符串转换为Windows的fopen()
可以接受的字符数组的呢?附言:我们不使用QT。
wfopen
在我的文件上获得一个FILE*
,但是我不知道如何正确使用imdecode
从中获取一个cv :: Mat
。 此外:OpenCV在3.0版本中是否仍然不支持本地非ASCII文件名?PS:如果我使用Qt,也许有一种更简单但仍然有效的方法吗(我的意思是不读取QImage
并在之后转换)? - bwebercv.imdecode(np.fromfile(fname, np.uint8), flags=cv.IMREAD_COLOR)
。 - Christoph Rackwitz