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服务器端收发请求的实现代码
Sep 29 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python实现的单向循环链表功能示例
Nov 10 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
wxPython之wx.DC绘制形状
Nov 19 Python
详解django中Template语言
Feb 22 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
python图片合成的示例
Nov 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
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
Python 正则表达式操作指南
2009/05/04 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python实现AI换脸功能
2020/04/10 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Python txt文件如何转换成字典
2020/11/03 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
Nike瑞士官网:Nike CH
2021/01/18 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
JAVA程序员自荐书
2014/01/30 职场文书
秋季运动会活动方案
2014/02/05 职场文书
授权委托书格式模板
2014/04/03 职场文书
生物科学专业自荐书
2014/06/20 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
信用卡工资证明格式
2014/09/13 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
妇产科护理心得体会
2016/01/22 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang