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字典多键值及重复键值的使用方法(详解)
Oct 31 Python
利用Python开发实现简单的记事本
Nov 15 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
python得到电脑的开机时间方法
Oct 15 Python
python获取本机所有IP地址的方法
Dec 26 Python
Python实现Linux监控的方法
May 16 Python
详解Django CAS 解决方案
Oct 30 Python
PyQt5的相对布局管理的实现
Aug 07 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
thinkPHP框架实现的简单计算器示例
2018/12/07 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python3处理文件中每个词的方法
2015/05/22 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python实现密码薄文件读写操作
2019/12/16 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
求职简历自荐信范文
2013/10/21 职场文书
大专应届生个人的自我评价
2013/11/21 职场文书
考核工作实施方案
2014/03/30 职场文书
保护环境建议书300字
2014/05/13 职场文书
高中课程设置方案
2014/05/28 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
优秀高中学生评语
2014/12/30 职场文书
琅琊山导游词
2015/02/05 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
靠谱的活动总结
2019/04/16 职场文书