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通过函数属性实现全局变量的方法
May 16 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
python使用sqlite3时游标使用方法
Mar 13 Python
TensorFlow损失函数专题详解
Apr 26 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
Python内建序列通用操作6种实现方法
Mar 26 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
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python+django+rest框架配置创建方法
2019/08/31 Python
如何基于python实现不邻接植花
2020/05/01 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
跟单文员岗位职责
2014/01/03 职场文书
自我鉴定注意事项
2014/01/19 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
结婚通知短信大全
2015/04/17 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书