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将人民币转换大写的脚本代码
Feb 10 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
理解Python垃圾回收机制
Feb 12 Python
python实现汉诺塔方法汇总
Jul 25 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
python针对excel的操作技巧
Mar 13 Python
python递归全排列实现方法
Aug 18 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
python字典的值可以修改吗
Jun 29 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
python 如何执行控制台命令与操作剪切板
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 ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
vue+eslint+vscode配置教程
2019/08/09 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python判断有效的数独算法示例
2019/02/23 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
Python gevent协程切换实现详解
2020/09/14 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
婚假请假条怎么写
2014/04/10 职场文书
关于青春的演讲稿
2014/05/05 职场文书
工程索赔意向书
2014/08/30 职场文书
小学庆六一主持词
2015/06/30 职场文书
PHP解决高并发问题
2021/04/01 PHP