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异常处理总结
Aug 15 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
Python3读取文件常用方法实例分析
May 22 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
pytest配置文件pytest.ini的详细使用
Apr 17 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 mongodb扩展时 需要注意的事项
2013/06/18 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
javascript定义函数的方法
2010/12/06 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
JavaScript 的继承
2011/10/01 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python如何实现线程间通信
2020/07/30 Python
python如何调用百度识图api
2020/09/29 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
校园绿化美化方案
2014/06/08 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
镇创先争优活动总结
2014/08/28 职场文书
公司离职证明标准样本
2014/10/05 职场文书