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神器对付12306变态验证码
Jan 05 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
python3判断IP地址的方法
Mar 04 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 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
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
JavaScript的Function详细
2006/11/14 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
便利店的创业计划书
2014/01/15 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
优秀应届生求职信
2014/06/16 职场文书
小学教师工作总结2015
2015/04/07 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
迎国庆主题班会
2015/08/17 职场文书
《风筝》教学反思
2016/02/23 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
解决python3安装pandas出错的问题
2021/05/20 Python
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
golang生成vcf通讯录格式文件详情
2022/03/25 Golang