我不能保存图像时,文件路径有特殊字符(如“é”的例子)。
下面是Python 3 shell的一个测试:
>>> cv2.imwrite('gel/test.jpg', frame)
True
>>> cv2.imwrite('gel/ééé/test.jpg', frame)
False
>>> cv2.imwrite('gel/eee/test.jpg', frame)
True
有什么办法吗?
谢谢你,谢谢
编辑:
不幸的是,@PM2Ring和@DamianLattenero提出的所有建议似乎都不起作用:(
所以,我使用@cdarke的解决方案,这是我的最终代码:
destination = 'gel/ééé/'
gel = 'test.jpg'
script_path = os.getcwd()
os.chdir(destination)
cv2.imwrite(gel, frame)
os.chdir(script_path)
6条答案
按热度按时间6qqygrtg1#
你可以先用OpenCV编码图像,然后用numpy
tofile()
方法保存它,因为编码后的图像是一个一维numpy ndarray:kxeu7u2r2#
尝试使用以下代码编码:
如果您使用Windows,则可以使用:
或者现在阅读@PM用户的答案,根据你的utf-16窗口:
如果这些都不适合你,试试这个:
hgqdbh6s3#
排成一行。
cv2.imencode(".jpg",frame)[1].tofile("gel/ééé/test.jpg")
azpvetkf4#
以下是我的写作和阅读功能:
qvtsj1bj5#
编码问题....困难但并非不可能
如果你有这个字符串=
'テスト/abc.jpg'
您可以像这样对字符进行Windows编码->
print('テスト/abc.jpg'.encode('utf-8').decode('unicode-escape'))
你会得到这样的东西=
'ãã¹ã/abc.jpg'
然后如果你想读取文件,让文件名可读可用,你可以使用一些库读取你路径的文件名,然后改变编码->
#fname is like 'ãã¹ã/abc.jpg'
fname.encode('iso-8859-1').decode('utf-8'))
#初始字符串的结果='テスト/abc.jpg'
jv2fixgn6#
试试这个