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程序抓取网页的HTML信息的一个小实例
May 02 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
python lxml中etree的简单应用
May 10 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
如何清空python的变量
Jul 05 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
Python实现画图软件功能方法详解
Jul 28 Python
scrapy结合selenium解析动态页面的实现
Sep 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
一个程序下载的管理程序(三)
2006/10/09 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
JS实现div居中示例
2014/04/17 Javascript
javascript常见用法总结
2014/05/22 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
毕业生自荐书
2014/02/03 职场文书
有趣的广告词
2014/03/18 职场文书
承诺书范文
2014/06/03 职场文书
信息管理专业自荐书
2014/06/05 职场文书
供电工程专业求职信
2014/08/09 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
工程项目合作意向书
2015/05/08 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python