python PIL/cv2/base64相互转换实例


Posted in Python onJanuary 09, 2020

PIL和cv2是python中两个常用的图像处理库,PIL一般是anaconda自带的,cv2是opencv的python版本。base64在网络传输图片的时候经常用到。

##PIL读取、保存图片方法
from PIL import Image
img = Image.open(img_path)
img.save(img_path2)
 
 
##cv2读取、保存图片方法
import cv2
img = cv2.imread(img_path)
cv2.imwrite(img_path2, img)
 
 
##图片文件打开为base64
import base64
 
def img_base64(img_path):
  with open(img_path,"rb") as f:
    base64_str = base64.b64encode(f.read())
  return base64_str

1、PIL和cv2转换

##PIL转cv2
import cv2
from PIL import Image
import numpy as np
 
def pil_cv2(img_path):
  image = Image.open(img_path)
  img = cv2.cvtColor(np.asarray(image),cv2.COLOR_RGB2BGR)
  return img
 
 
##cv2转PIL
import cv2
from PIL import Image
 
def cv2_pil(img_path):
  image = cv2.imread(img_path)
  image = Image.fromarray(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))
  return image

2、PIL和base64转换

##PIL转base64
import base64
from io import BytesIO
 
def pil_base64(image):
  img_buffer = BytesIO()
  image.save(img_buffer, format='JPEG')
  byte_data = img_buffer.getvalue()
  base64_str = base64.b64encode(byte_data)
  return base64_str
 
 
##base64转PIL
import base64
from io import BytesIO
from PIL import Image
 
def base64_pil(base64_str):
  image = base64.b64decode(base64_str)
  image = BytesIO(image)
  image = Image.open(image)
  return image

3、cv2和base64转换

##cv2转base64
import cv2
 
def cv2_base64(image):
  base64_str = cv2.imencode('.jpg',image)[1].tostring()
  base64_str = base64.b64encode(base64_str)
  return base64_str 
 
 
##base64转cv2
import base64
import numpy as np
import cv2
 
def base64_cv2(base64_str):
  imgString = base64.b64decode(base64_str)
  nparr = np.fromstring(imgString,np.uint8) 
  image = cv2.imdecode(nparr,cv2.IMREAD_COLOR)
  return image

以上这篇python PIL/cv2/base64相互转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python最长公共子串算法实例
Mar 07 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
PyQt5 对图片进行缩放的实例
Jun 18 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
如何在Python项目中引入日志
May 31 Python
python图像处理 PIL Image操作实例
Apr 09 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 #Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 #Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 #Python
使用PyTorch训练一个图像分类器实例
Jan 08 #Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
Jan 08 #Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 #Python
Python 实现训练集、测试集随机划分
Jan 08 #Python
You might like
使用无限生命期Session的方法
2006/10/09 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
php+highchats生成动态统计图
2014/05/21 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
python编写猜数字小游戏
2019/10/06 Python
python第三方库学习笔记
2020/02/07 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
培训主管岗位职责
2014/02/01 职场文书
西式婚礼主持词
2014/03/13 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server