1. opencv 和 bytes

# opencv 转 二进制图片
def Mat2bytes(image):return np.array(cv2.imencode('.jpg', image)[1]).tobytes()
# 二进制图片 转 opencv
def bytes2Mat(image):return cv2.imdecode(np.array(bytearray(image), dtype='uint8'), cv2.IMREAD_UNCHANGED)

2. opencv 和 base64

# opencv 转 base64
def Mat2base64(image):return str(base64.b64encode(cv2.imencode('.jpg',image)[1]))[2:-1]
# base64 转 opencv
def base642Mat(image_base64):image = base64.b64decode(image_base64)return cv2.imdecode(np.fromstring(image, np.uint8), cv2.IMREAD_COLOR)

3. opencv 和 PIL

# opencv 转 PIL
def Mat2Image(image):return Image.fromarray(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))
# PIL 转 opencv
def Image2Mat(image):return cv2.cvtColor(np.asarray(image),cv2.COLOR_RGB2BGR)

4. bytes 和 base64

# 二进制图片 转 base64
def bytes2base64(image):return base64.b64encode(image)
# base64 转 二进制图片
def base642bytes(image_base64):return base64.b64decode(image_base64)

5. opencv 和 QImage

# opencv 转 Qt.QImage
def Mat2QImage(image):image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)y, x = image.shape[:2]return QImage(image.data, x, y, x * 3, QImage.Format_RGB888)
# Qt.QImage 转 opencv
# 此处转换完成的图片是4通道(RGBA)还需转换成3通道(RGB)
# image = cv2.cvtColor(image, cv2.COLOR_RGBA2RGB)
def QImage2Mat(image):image = image.convertToFormat(4)width = image.width()height = image.height()ptr = image.bits()ptr.setsize(image.byteCount())return np.array(ptr).reshape(height, width, 4)

6. opencv 和 matplotlib

# opencv 在 matplotlib 下的显示与保存
import matplotlib.pyplot as plt
import cv2image = cv2.imread("./a.jpg")
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # BGR 转 RGB# 先保存,再显示,否则会无法保存以及正常显示的问题。
plt.imshow(image)
plt.savefig('./b.jpg')  # 保存
plt.show()  # 显示

python 图像数据相互转换相关推荐

  1. 【Tool】Augmentor和imgaug——python图像数据增强库

    Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...

  2. python图像增强_【Tool】Augmentor和imgaug——python图像数据增强库

    Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...

  3. python图像数据增强——imgaug (一)

    (一)imgaug基础用法 (二)imgaug进阶示例 (三)imgaug图像分割数据增强 在机器学习或者深度学习的问题中,因为受制于图像采集的方式,投入的精力和图像标注的难度等,用于训练的图像数量可 ...

  4. python图像数据是几维数据_python数据分析:数据降维(tsen)

    为什么要对数据进行降维? 实际应用中的数据一般是高维的,比如手写的数字,如果我们缩放到28×28的图片大小,那么它的维度就是28×28=784维. 举个简单的例子: 下图是手写的1及其对应的图像二维矩 ...

  5. python 神经网络图像增强_非常好用的Python图像数据增强工具,适用多个框架

    编辑:zero 关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息 本文转载自:公众号:AI公园 作者:mdbloice 编译:ronghuaiyan ...

  6. python图像数据是几维数据_python实现读取类别频数数据画水平条形图案例

    1.数据分组– 频数分布表 环境配置:import pandas as pd import numpy as np import matplotlib.pyplot as plt 按照你设定合适的间隔 ...

  7. python图像数据是几维数据_Numpy高维数据的理解

    编辑推荐: 本文来源csdn,本文主要对Numpy高维数据的理解进行介绍,希望对您的学习有所帮助. Numpy高维数据的理解 当实际处理多维变量时,尤其需要使用到Tensorflow这样深度学习库,比 ...

  8. python图像数据是几维数据_Python图像处理库PIL的ImagePath模块被用于存储和操作二维向量数据...

    ImagePath模块被用于存储和操作二维向量数据.Path对象会被传递到ImageDraw模块中. 一.ImagePath模块的函数 1. Path 定义:ImagePath.Path(coordi ...

  9. python图像数据是几维数据_MNIST数据集转化为二维图片的实现示例

    本文介绍了MNIST数据集转化为二维图片的实现示例,分享给大家,具体如下: #coding: utf-8 from tensorflow.examples.tutorials.mnist import ...

最新文章

  1. ICCV 2021 Oral | PoinTr:几何敏感的多样点云补全Transformer
  2. java 坦克重叠_坦克大战中坦克一直有重叠是怎么回事
  3. 超级数学计算机,超级计算器+
  4. 使用Optuna的XGBoost模型的高效超参数优化
  5. Odd Sum Segments(CF-1196B)
  6. 由浅入深CAS,小白也能与BAT面试官对线
  7. Redis的常见实际应用,不仅仅是缓存(转)
  8. 【工程/物理光学(一)——光的电磁理论基础】
  9. 小松鼠短视频完开源源码
  10. 修改域名dns服务器地址,易名中国域名如何修改DNS设置方法
  11. crc原理及c代码实现
  12. java中后台的跳转_java后台跳转
  13. 征途mysql启动不了_mysql无法启动
  14. 干货 | 日均5亿字符翻译量,百毫秒内响应,携程机器翻译平台实践
  15. 台式计算机如何升级,电脑硬件如何升级:PC硬件升级不盲目 对症下药最靠谱
  16. 李华明Himi浅谈游戏开发de自学历程!(仅供参考)
  17. 计算机实战项目之 [含论文+辩论PPT+源码等]微信小程序社区疫情防控+后台管理|前后分离VUE[包运行成功
  18. 运维是不是IT行业里技术含量最低的岗位?
  19. 基于计算机底层基础设计一个高性能的单机管理主机的心跳服务
  20. Linux 系统设置 : insmod 命令详解

热门文章

  1. 网络编程总结--小码哥java
  2. Rockchip RK3588 使用ddrbin_tool 修改DDR loader文件参数
  3. 拼题A基础篇 30 求整数的位数及其各位数字之和
  4. 航空电子系统通用测试平台ETest的设计
  5. 电脑怎样把几个视频合成一个视频
  6. 【笔记】区块链的系统架构、数据结构及运行机制
  7. html字体左右摇动代码,CSS3 左右摇摆的文字动效
  8. Wide Deep
  9. 易佳佳能MOV视频恢复软件
  10. Windows 成“弃子”,Linux 终上位?