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遍历文件夹并删除特定格式文件的示例
Mar 05 Python
python计算书页码的统计数字问题实例
Sep 26 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
python daemon守护进程实现
Aug 27 Python
Python实现的文本编辑器功能示例
Jun 30 Python
django manage.py扩展自定义命令方法
May 27 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
Python获取excel内容及相关操作代码实例
Aug 10 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绘制饼状图的实现代码
2013/06/07 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python中xrange用法分析
2015/04/15 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
python实现共轭梯度法
2019/07/03 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
请说出以下代码输出什么
2013/08/30 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
计划生育责任书
2015/05/09 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
预备党员群众意见
2015/06/01 职场文书
清明扫墓感想
2015/08/11 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python