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在linux中输出带颜色的文字的方法
Jun 19 Python
全面解读Python Web开发框架Django
Jun 30 Python
Python中title()方法的使用简介
May 20 Python
python实现redis三种cas事务操作
Dec 19 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
Python做智能家居温湿度报警系统
Sep 25 Python
python selenium firefox使用详解
Feb 26 Python
python针对Oracle常见查询操作实例分析
Apr 30 Python
Django使用Profile扩展User模块方式
May 14 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
Python基础之元类详解
Apr 29 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操作JSON格式数据的实现代码
2011/12/24 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
php探针不显示内存解决方法
2019/09/17 PHP
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python实现mean-shift聚类算法
2020/06/10 Python
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
财务部总监岗位职责
2014/03/12 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
正则表达式拆分url实例代码
2022/02/24 Java/Android
Redis基本数据类型String常用操作命令
2022/06/01 Redis