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 subprocess模块学习总结
Mar 13 Python
Python中dictionary items()系列函数的用法实例
Aug 21 Python
详解python3实现的web端json通信协议
Dec 29 Python
mac 安装python网络请求包requests方法
Jun 13 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python实现石头剪刀布游戏
Jan 20 Python
python os.listdir()乱码解决方案
Jan 31 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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
使用数据库保存session的方法
2006/10/09 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
python动态参数用法实例分析
2015/05/25 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
Python中Selenium库使用教程详解
2020/07/23 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
什么是继承
2013/12/07 面试题
大学生新闻专业个人自我评价
2013/11/12 职场文书
大学校运会广播稿
2014/02/03 职场文书
检讨书范文大全
2015/05/07 职场文书
MySQL分区表实现按月份归类
2021/11/01 MySQL
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android