保存图像_06 - matplotlib中应知应会numpy存储、交换图像
matplotlib中应知应会numpy存储、交换图像
numpy的ndarray是mpl官方推荐的输入数据结构
mpl官方推荐绘图时,应以numpy的ndarray数据结构输入数据。虽然有时用pandas中的两个数据结构、python的list等数据结构也可以,但不能保证都能成功。
这是因为numpy的ndarray的结构设计天生具有保存、交换、变换图像数据的优势。
本篇:
- 将一幅image转换为ndarray保存起来;
- 再在mpl的fig中读取保存的ndarray,并显示出该image;
- 并分析ndarray保存image的基本思想。
在mpl中,很多对象的一些参数设置都要借助ndarray的变换来实现一些绘图效果。因此理解ndarray保存图像,对后面学习相关内容非常有帮助。
阅读前两篇关于像素和分辨率的文章,会让你阅读本篇更轻松。
将一幅image存入ndarray
仍然以上篇中用到的这幅image为例:原图像可以到"Python草堂“QQ群下载。
img2array.jpg
输入如下代码:
import numpy as npfrom PIL import Imageim_source = Image.open('./assets/img2array.jpg') #应该修改成你的image保存的路径im_ar = np.array(im_source)np.save('./assets/imgdata.npy',im_ar)# 同样要修改为你保存数据文件的目录im_ar.shape
注意:上面的代码需要Python的 PIL库的支持
上面的代码完成了这么几件事:
- 读取了磁盘上的"img2array.jpg"图像;
- 将图像数据转换为数组;
- 将数组保存为磁盘文件“imgdata.npy"
- 查看了这个数组的形状是:(344, 250, 3)
ndarray保存图像的方式解析
上面的第4个任务显示,图像数据被保存在一个(344, 250, 3)的3维数组中。
你如果读了上一篇,应该记得,这个(344, 250)正是该image的像素大小:
没错,numpy就是用这样一个3维数组保存image数据的:
- image高度上的像素个数是ndarray的行数,这里是344行;
- image宽度上的像素个数是ndarray的列数,这里是255列;
- 行列交叉位置,就是图像的坐标位置了,即每个像素单元格上,再用一个有3个元素一维数组表示该像素的颜色 [R, G, B] 值。
如下图所示,每个格子是一个像素,每个格子上的3元素的列表就是该像素上的 [R, G, B] 值。
使用:im_ar[12][27]检索,返回一个array([247, 176, 148]
我们就知道第13行,第28列上的像素的颜色是 [247, 176, 148],在配色软件上检索这个值:
[247, 276, 168]
numpy就是这样用ndarray保存image的。是不是豁然开朗了!
读取ndarray,显示出图像
我将生存的ndarray数据文件放到了"Python草堂"群文件的DataSets文件中,供大家下载。
输入如下代码:
注意:这是纯面向对象绘图的代码,所以看起来代码比较多,但每一步在做什么,我都很清楚。
from matplotlib.backends.backend_agg import FigureCanvasAggfrom matplotlib.figure import Figure,SubplotParamsimport numpy as npfig =Figure(figsize=(1.1,1.4), dpi=300, facecolor=(239/256,239/256,239/256), edgecolor=(82/256,101/256,155/256), linewidth=2.0, frameon=True, )canvas = FigureCanvasAgg(fig)imgdata = np.load('./assets/imgdata.npy',)fig.figimage(imgdata,xo=40,yo=30,origin='upper')s, (width, height) = canvas.print_to_buffer() from PIL import Imageim = Image.frombytes("RGBA
保存图像_06 - matplotlib中应知应会numpy存储、交换图像相关推荐
- 天翼云应知应会认证重点知识手册
天翼云应知应会认证核心知识点 1 天翼云认证应知应会重点知识点串讲 第一部分:基础知识能力提升板块 一.基础知识(选修) 1.服务器基础(选修) 必备掌握知识点: (1)1967 年和1977 年分别 ...
- 应知应会的Word图片技巧(转)
应知应会的Word图片技巧(转) 在使用Word编辑文档时,为了使文档图文并茂,难免要与Word中的图片打交道,以下是笔者总结的十则Word图片技巧,在此与您分享. 一.在Word文档中抠出图 ...
- HTTP应知应会知识点复习手册(下)
前言 本文快速回顾了常考的的知识点,用作面试复习,事半功倍. 面试知识点复习手册 全复习手册文章导航 Csdn全复习手册文章导航: https://blog.csdn.net/qqxx6661/art ...
- Linux初级工程师应知应会
Linux初级工程师应知应会 权限管理 1. Linux用户及权限 1. Linux用户和组 Linux中的用户 root用户 系统用户 用户组 2. Linux权限构成 Linux的权限组成 Lin ...
- 职称计算机初级应知应会书,2017专业技术职称申报应知应会.ppt
2017专业技术职称申报应知应会 关于转系列评审 申报转评某一系列专业技术职称,申报条件参照该技术职称条件要求执行. 此外: 之前的计算机.外语资历有效. 若申请转评的职称条件中有计算机.外语要求而之 ...
- k3 物料收发明细表sql_物料管理:班组长物料使用应知应会4件事
阅读导航→ 01 物料使用前检查 02 物料台面摆放 03 物料消耗控制 04 生产废料处理 一.物料使用前检查 为判定物料投入生产前的质量,预防不合格.不正确的物料投入使用,班组长需督促.指导班组员 ...
- 嵌入式从业者应知应会知识点 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是嵌入式从业者应知应会知识点. 嵌入式开发需要掌握的知识点非常多,不同的技术方向有不同的知识侧重点,本系列试图整理总结嵌入式开发(尤其是 ...
- 电信笔试C语言,-中国电信笔试-中国电信C网应知应会题库基础分册(V1.0).doc
2 中国电信C网应知应会题库 基础分册(V1.0) 中国电信人力资源部 二零零八年九月 编制说明 随着中国电信运营商重组方案尘埃落定,中国电信正在加紧C网的接管.运营工作.这就迫切要求中国电信的服务管 ...
- 浅谈政务行业售前架构(解决方案)岗位应知应会
如果这是一个命题<浅谈政务行业售前架构岗位应知应会>,那么我下面会从工作实际情况进行阐述: 一.但凡谈到政务行业,一定少不了公检法司.教育.文旅.发改工信科技委员会等等政务机构,今天只谈谈 ...
最新文章
- Android隐藏状态栏和标题栏,相当于全屏效果
- 影像组学视频学习笔记(35)-基于2D超声影像的影像组学特征提取、Li‘s have a solution and plan.
- Caused by: java.net.UnknownHostException: localhost.localdomain: localhost.localdomain的问题解决
- opencv 霍夫曼变换 直线提取
- python 批量修改密码
- ChaiNext:大盘横盘,主流币未有突出表现
- SpringBoot连接远程云服务器的Redis并且让Redis后台运行
- Quartus II调用modelsim ALTEA 的软件使用及问题
- 第一篇论文:改进TCP及UDP的性能分析及比较
- RemObjects
- php 发送curl跨域请求,php跨域传输(curl)
- Python 自动化办公 —— PyPDF2 库的基本使用
- Linux修改文件保存时报错E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
- excel学习-选择性粘贴(转置+跳过空白单元格+运算)
- 邮箱如何发邮件?邮箱怎么发邮件,掌握这几点,轻松搞定
- 移动商务进入战国时代 08年市场规模达306.5亿
- 前端面试问题(白话回答,便于记忆)
- 快速打开cmd的方法(win7) window小合集
- arcgis 投影坐标系的区分
- makefile中一些符号的含义
热门文章
- 【转】关键字过滤算法
- python实现链表的删除_Python中 为我们提供了一些独特的解决方案的方法特性
- 计算机二级考试python_全国计算机等级考试考试大纲(2018年版)
- cpu散热器怎么拆_电脑CPU处理器与整机温度高 教你简单解决
- [转载] java-继承和多态
- 关于细分到字段的权限系统_操作系统中的细分
- 美颜相机window 开源_X-Window系统| 免费和开源软件
- 网际控制报文协议icmp_网络中的ICMP(Internet控制消息协议)
- c#如何实现叫号操作_微信预约排队叫号系统操作指南
- 狂神说es笔记_人教版七上英语Unit5电子课本音频+课堂笔记+课后同步习题