jupyter 使用Pillow包显示图像时inline显示方式


Posted in Python onApril 24, 2020

1.单独使用Pillow包时,图片会弹出新窗口显示:

from Pillow import Image
img = Image.open('data/empire.jpg')
img.show()

2.我想要在jupyter notebook的浏览器上边显示图片怎么办?

可以使用matplotlab.pyplot【显示图片工具】 和 Pillow【图片处理工具】 结合使用

%matplotlib inline
import matplotlib.pyplot as plt 
from PIL import Image

img = Image.open('./img.png', 'r')

plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show()

例子如下:

jupyter 使用Pillow包显示图像时inline显示方式

3.pillow显示灰色图片+plt显示多个图片

%matplotlib inline
import matplotlib.pyplot as plt 
from PIL import Image

img = Image.open('./img.png', 'r')


gray = img.convert('L')
r,g,b = img.split()       #注意:gray和r,g,b不一样,gray是三者通过公式算出来的
img_merged = Image.merge('RGB', (r, g, b))

#plt.figure(figsize=(10,5)) #设置窗口大小
plt.suptitle('Multi_Image') # 图片名称

plt.subplot(2,3,1), plt.title('imge:oringe')
plt.imshow(img), plt.axis('off')
plt.subplot(2,3,2), plt.title('gray:weicaise')
plt.imshow(gray), plt.axis('off')
plt.subplot(2,3,3), plt.title('gray:true')# 这里必须加 cmap='gray' ,否则尽管原图像是灰度图(下图1),但是显示的是伪彩色图像(下图2)(如果不加的话)
plt.imshow(gray,cmap='gray'), plt.axis('off')
plt.subplot(2,3,4), plt.title('r')
plt.imshow(r,cmap='gray'), plt.axis('off')
plt.subplot(2,3,5), plt.title('g')
plt.imshow(g,cmap='gray'), plt.axis('off')
plt.subplot(2,3,6), plt.title('b')
plt.imshow(b,cmap='gray'), plt.axis('off')

plt.show()

jupyter 使用Pillow包显示图像时inline显示方式

补充知识:jupyter(ipython)内嵌问题:%pylab inline的使用

在使用jupyter(ipython新版本)的画图的过程中遇到了一个有关内嵌命令的问题,将其记录如下:

1、案例描述

一个超级简单的画图程序,因为jupyter是一个C/S分布式的python编辑环境,是一个基于客户端web页面的在线编辑器,你可以在浏览器中输入服务器的ip地址及jupyter的端口号(默认为8888),也可以自己的本机做服务器(地址为http://localhost:8888)

未修改的代码如下:

%matplotlib inline
import numpy as np 
import matplotlib.pyplot as plt 

#以自然数序列作为多项式的系数,使用polyld函数创建多项式 
func = np.poly1d(np.array([1,2,3,4]).astype(float)) 
print func
#使用Numpy的linspace函数创建X轴的数值,在-10和10之间产生30个均匀分布的值 
x=np.linspace(-10,10,30) 
#计算我们在第一步中创建的多项式的值 
y=func(x) 

plt.plot(x,y) 
plt.xlabel('x',fontsize=12) 
plt.ylabel('y(x)',fontsize=12) 
plt.show()

2、报错:

jupyter 使用Pillow包显示图像时inline显示方式

错误提示:ImportError: libXext.so.6: cannot open shared object file: No such file or directory

一开始以为是没有安装PyQt4的错(虽然我的确没有安装该模块)。

但是仔细看了下很长的错误提示后发现是pylab没有内嵌进去。于是在开头部分内嵌进去即可。修改后的代码如下:

3、解决方案

在代码的第一行加上%pylab inline

#在开头添加pylab的内嵌语句,pylab是 Matplotlib 和Ipython提供的一个模块,提供了类似Matlab的语法。
%pylab inline
%matplotlib inline
import numpy as np 
import matplotlib.pyplot as plt 

#以自然数序列作为多项式的系数,使用polyld函数创建多项式 
func = np.poly1d(np.array([1,2,3,4]).astype(float)) 
print func
#使用Numpy的linspace函数创建X轴的数值,在-10和10之间产生30个均匀分布的值 
x=np.linspace(-10,10,30) 
#计算我们在第一步中创建的多项式的值 
y=func(x) 

plt.plot(x,y) 
plt.xlabel('x',fontsize=12) 
plt.ylabel('y(x)',fontsize=12) 
plt.show()

加%pylab inline之后可正确运行出结果:

jupyter 使用Pillow包显示图像时inline显示方式

以上这篇jupyter 使用Pillow包显示图像时inline显示方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的引用和拷贝浅析
Nov 22 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
TensorFLow 变量命名空间实例
Feb 11 Python
Python使用configparser读取ini配置文件
May 25 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
详解pandas映射与数据转换
Jan 22 Python
pyspark 随机森林的实现
Apr 24 #Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 #Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 #Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 #Python
python实现飞船大战
Apr 24 #Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 #Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 #Python
You might like
php在线生成ico文件的代码
2007/10/09 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
如何实现JS函数的重载
2006/09/22 Javascript
犀利的js 函数集合
2009/06/11 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
独特的python循环语句
2016/11/20 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
TensorFlow变量管理详解
2018/03/10 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
python得到单词模式的示例
2018/10/15 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
电子商务专业个人的自我评价
2013/11/19 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
职务聘任书范文
2014/03/29 职场文书
优秀教师演讲稿
2014/05/06 职场文书
农业开发项目建议书
2014/05/16 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
老人节标语大全
2014/10/08 职场文书
感恩教师主题班会
2015/08/12 职场文书
公开致歉信
2019/06/24 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL