python3下使用cv2.imwrite存储图片名含有中文字符图片

python3下使用cv2.imwrite存储图片名含有中文字符的图片

 

python3中直接用cv2.imwrite方法的话,在图片名中出现乱码,查资料,折腾了好久,发现如下解决方法。

代码如下

 

if i % frame_interval == 0:
    imagename = '{}_{}_{:0>6d}.jpg'.format(video_prefix, filename.split('.')[0], i)
    imagepath = os.sep.join([frame_path, imagename])
    print('exported {}!'.format(imagepath))
    #cv2.imwrite(imagepath, frame)
    cv2.imencode('.jpg', frame)[1].tofile(imagepath)

使用

#cv2.imwrite(imagepath, frame)

的效果

出现乱码

改为

cv2.imencode('.jpg', frame)[1].tofile(imagepath)

后解决问题

input_path = "E:\\pic\\大大w1.png"
out_path = "D:\\大大w1.png"
img = cv2.imdecode(np.fromfile(input_path, dtype=np.uint8),-1)#输入含中文或者文件名含中文时
cv2.imencode('.jpg', img)[1].tofile(out_path)#输出含中文或者文件名含中文时,另外'.jpg'参数不影响使用png的图片

 

你可能感兴趣的:(Python学习,OpenCV,python3下,cv2.imwrite,存储图片,中文字符)