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自动化测试工具Splinter简介和使用实例
May 13 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
对Django外键关系的描述
Jul 26 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
python 实现音频叠加的示例
Oct 29 Python
python 如何引入协程和原理分析
Nov 30 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生成html分页列表的代码
2007/03/18 PHP
php仿ZOL分页类代码
2008/10/02 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
政府采购方案
2014/06/12 职场文书
优秀党员先进材料
2014/12/18 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android