使用 matplotlib 显示彩色图像
详细说明见代码注释
"""
介绍如何使用 matplotlib 输入、输出 彩色图像,并简要介绍如何将数组表示形式的图像数据显示为图像
"""
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np # 读入一幅彩色图片
img_path = 'demo.jpg' # 读入当前文件目录下的 demo.jpg
img = Image.open(img_path) # 显示图片
plt.figure("Image") # 图像窗口名称
plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show() # --------------------------------一般神经网络中对图像的处理(部分)--------------------------------------------------
# 打印图像的PTL存储形式
print(img)
# 将图片转成numpy数组(这是图像处理过程中必然使用的一步),并将原来的int像素值改成float类型
img = np.asarray(img, dtype=float)
print(img) # 打印numpy的存储形式
# 转换3通道图像的数组格式 : transpose (H, W, C) -> (C, H, W)
img = img.transpose((2, 0, 1))
print(img) # 打印转换通道之后的存储形式
# ---------------------------------------------------------------------------------- # 讲过上面处理过后,通常得到一副图像的数组表示形式,如:[3, 375, 500] 分别表示图形的通道数、高、宽
# 但图像一般的存储格式为:[375, 500, 3] 及高、宽、通道数
# 所以要对数组形式做一定的改变才能正常显示
# 首先转换数据类型:float -> int
img = np.asarray(img, dtype=int)
# 然后转换存储格式
img = img.transpose((1, 2, 0)) # transpose (C, H, W) -> (H, W, C)
# 之后便可正常显示图片
plt.imshow(img)
# plt.show() 移到最后,防止下面存储图片时得到空白图 # 有些公布的开源神经网络代码中可能无法使用 matplotlib 输出显示图片,但可以直接将图片存储下来
# 存储图片
# 但是要注意,在存储图片之前,一定要保留住图片的信息,比如不能使用 plt.show() ,否则图片信息被输出,则会得到一张空白图
plt.savefig('{}_save.jpg'.format(img_path.split('.')[0])) plt.show()
使用 matplotlib 显示彩色图像的更多相关文章
- matplotlib显示中文异常处理
matplotlib显示中文 [做个记录,方便以后使用] [一般导入方式] import matplotlib.pyplot as plt [效果图] [方式一]FontProperties impo ...
- 修改配置文件matplotlibrc,让Matplotlib显示中文
matplotlib默认不支持中文显示,网上的解决办法有好多种,但是大多数都是通过在代码中指定字体,虽然也能实现,但是多出那么几行代码让人觉得很恶心. 本文介绍一种通过修改配置文件matplotlib ...
- matplotlib 显示中文 与 latex冲突
如果在使用中文之前包含了使用latex的语法: mpl.rcParams['text.usetex'] = True 将不能正确显示含有中文的图片. 附 显示中文的方法: from matplotli ...
- Kinect For Windows V2开发日志五:使用OpenCV显示彩色图像及红外图像
彩色图像 #include <iostream> #include <Kinect.h> #include <opencv2\highgui.hpp> using ...
- 关于Python matplotlib显示汉字乱码问题
我也是一个初学者,在今天编程时遇到的一个问题,我是基于Eclipse编写Python代码,在使用matplotlib进行数据可视化时,发现显示不了汉字并且出现乱码问题. (1)使用中文注释时报错: 解 ...
- matplotlib显示中文
[注意] 可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:) import matplotlib.pyplot as ...
- python tips;matplotlib 显示中文
import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mpl mpl.rcParams['axes.unicode ...
- matplotlib 显示两张图片,折线图 和 scipy
显示两张图片的代码: import numpy as np from scipy.misc import imread, imsave, imresize import matplotlib.pypl ...
- matplotlib 显示最后n条数据(可用于实时更新)
2020-04-16 14:05:01 --Edit by yangray 按横轴刻度的种类不同,分为数值类刻度和日期类刻度. 数值类刻度 需求:x轴数据间隔为2,显示最后24条数据. #!/usr/ ...
随机推荐
- 如何使用Github搭建自己的博客
1.前期准备 sudo apt-get install npm sudo npm install hexo -g 首先使用如下命令创建项目,name是你要创建的博客的名字: hexo init {na ...
- 使用Cesium Stories来可视化时序数据
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium可以用来可视化随时间变化的数据,无论是跨越数百年的地 ...
- Qt之图片
widget.h: #ifndef WIDGET_H #define WIDGET_H #include<QPaintEvent> #include <QWidget> #in ...
- 科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 删除修改docker网络环境
安装工具包 yum install bridge-utils -y 设置docker0 ip网段 ip link set docker0 down brctl delbr docker0 brctl ...
- 关于Linux安装中NAT模式和桥接模式的区别详解(转载)
1.一般我们在创建一个Linux虚拟机时候,会面临三个网络配置选择: 桥接模式.nat模式.host-only模式(主机模式,这个模式用得少,就不介绍了) 2.NAT模式: 所谓nat模式,就是虚拟系 ...
- [论文][半监督语义分割]Semi-Supervised Semantic Segmentation with High- and Low-level Consistency
Semi-Supervised Semantic Segmentation with High- and Low-level Consistency TPAMI 2019 论文原文 code 创新点: ...
- 使用Xamarin开发移动应用示例——数独游戏(八)使用MVVM实现完成游戏列表页面
项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们已经完成了游戏的大部分功能,玩家可以玩预制的数独游戏,也可以自己添加 ...
- mysql启动错误:mysql.sock丢失
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 我的是Cent ...
- 一键部署mysql 无修改直接cp 执行 100% 有效
一键部署mysql 无修改直接cp 执行 100% 有效 将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成, 即可使用mysql -u root -p点击 ...