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绘制数据的瀑布图的教程
Apr 07 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
python+logging+yaml实现日志分割
Jul 22 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
python爬虫 正则表达式解析
Sep 28 Python
python对象转字典的两种实现方式示例
Nov 07 Python
tensorflow图像裁剪进行数据增强操作
Jun 30 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
15个Pythonic的代码示例(值得收藏)
Oct 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数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
python 矩阵增加一行或一列的实例
2018/04/04 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
剪枝的学问教学反思
2014/02/07 职场文书
二年级学生评语大全
2014/04/23 职场文书
个人欠款担保书
2014/05/20 职场文书
学校周年庆活动方案
2014/08/22 职场文书
中秋客户感谢信
2015/01/22 职场文书
政府会议通知范文
2015/04/15 职场文书
小学生读书笔记
2015/07/01 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
python 网络编程要点总结
2021/06/18 Python
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL