因为要转换一批bmp图片到jpg格式,不料转换完后发现少了几十张,于是开始找问题。
发现没成功转换的图片文件名上都有中文,于是怀疑是中文问题。
试了 # -*- coding: gbk -*- 没用 ,path.decode('utf-8').encode('gbk') 也不行。
最后发现 cv2.imdecode(np.fromfile(imPth,dtype=np.uint8),1) 可行 !
这个函数相当于cv2.imread(path). 参数1表示读取彩色RGB,还可以是 -1 读取全部信息 如RGBA 或者 0 读取灰度图。
保存中文路径用以下,不然还会出现乱码:.jpg 表示用jpg格式编码
cv2.imencode('.jpg', imPth)[1].tofile('{}/{}'.format(savePath,imName))