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操作列表之List.insert()方法的使用
May 20 Python
在Python中使用正则表达式的方法
Aug 13 Python
python的dataframe和matrix的互换方法
Apr 11 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
使用python去除图片白色像素的实例
Dec 12 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
Django后端按照日期查询的方法教程
Feb 28 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连接MySQL代码的参数说明
2008/06/07 PHP
php面向对象的方法重载两种版本比较
2008/09/08 PHP
php错误级别的设置方法
2013/06/17 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
javascript列表框操作函数集合汇总
2013/11/28 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
进一步理解Python中的函数编程
2015/04/13 Python
Python制作数据导入导出工具
2015/07/31 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Python 如何在字符串中插入变量
2020/08/01 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
初入社会应届生求职信
2013/11/18 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
升职感谢信
2015/01/22 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript