python PIL/cv2/base64相互转换实例
PIL和cv2是python中两个常用的图像处理库,PIL一般是anaconda自带的,cv2是opencv的python版本。base64在网络传输图片的时候经常用到。
##PIL读取、保存图片方法 fromPILimportImage img=Image.open(img_path) img.save(img_path2) ##cv2读取、保存图片方法 importcv2 img=cv2.imread(img_path) cv2.imwrite(img_path2,img) ##图片文件打开为base64 importbase64 defimg_base64(img_path): withopen(img_path,"rb")asf: base64_str=base64.b64encode(f.read()) returnbase64_str
1、PIL和cv2转换
##PIL转cv2 importcv2 fromPILimportImage importnumpyasnp defpil_cv2(img_path): image=Image.open(img_path) img=cv2.cvtColor(np.asarray(image),cv2.COLOR_RGB2BGR) returnimg ##cv2转PIL importcv2 fromPILimportImage defcv2_pil(img_path): image=cv2.imread(img_path) image=Image.fromarray(cv2.cvtColor(image,cv2.COLOR_BGR2RGB)) returnimage
2、PIL和base64转换
##PIL转base64 importbase64 fromioimportBytesIO defpil_base64(image): img_buffer=BytesIO() image.save(img_buffer,format='JPEG') byte_data=img_buffer.getvalue() base64_str=base64.b64encode(byte_data) returnbase64_str ##base64转PIL importbase64 fromioimportBytesIO fromPILimportImage defbase64_pil(base64_str): image=base64.b64decode(base64_str) image=BytesIO(image) image=Image.open(image) returnimage
3、cv2和base64转换
##cv2转base64 importcv2 defcv2_base64(image): base64_str=cv2.imencode('.jpg',image)[1].tostring() base64_str=base64.b64encode(base64_str) returnbase64_str ##base64转cv2 importbase64 importnumpyasnp importcv2 defbase64_cv2(base64_str): imgString=base64.b64decode(base64_str) nparr=np.fromstring(imgString,np.uint8) image=cv2.imdecode(nparr,cv2.IMREAD_COLOR) returnimage
以上这篇pythonPIL/cv2/base64相互转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。