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计算方程式根的方法
May 07 Python
Python学习思维导图(必看篇)
Jun 26 Python
Python字符串格式化的方法(两种)
Sep 19 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
Python 查看文件的读写权限方法
Jan 23 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python二维码生成识别实例详解
Jul 16 Python
Python 共享变量加锁、释放详解
Aug 28 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
python 瀑布线指标编写实例
Jun 03 Python
Pygame如何使用精灵和碰撞检测
Nov 17 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 print EOF实现方法
2009/05/21 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
基于python 字符编码的理解
2017/09/02 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
python 实现屏幕录制示例
2019/12/23 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
会计学个人自荐信模板
2013/12/13 职场文书
茶叶生产计划书
2014/01/10 职场文书
小学生春游活动方案
2014/08/20 职场文书
校长师德表现自我评价
2015/03/05 职场文书
人事任命书范本
2015/09/21 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python