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备份文件以及mysql数据库的脚本代码
Jun 10 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
深入浅出分析Python装饰器用法
Jul 28 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
Python列表生成式与生成器操作示例
Aug 01 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
python 获取谷歌浏览器保存的密码
Jan 06 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python获取时间戳代码实例
2019/09/24 Python
Python内置函数locals和globals对比
2020/04/28 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
实习自荐信
2013/10/13 职场文书
市场营销战略计划书
2014/05/06 职场文书
营业员岗位职责
2015/02/11 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
太空授课观后感
2015/06/17 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript