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中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
python使用zip将list转为json的方法
Dec 31 Python
django 自定义过滤器的实现
Feb 26 Python
django 读取图片到页面实例
Mar 27 Python
Python实现代码块儿折叠
Apr 15 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
Python入门之基础语法详解
May 11 Python
python正则表达式re.search()的基本使用教程
May 21 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 Python
7个关于Python的经典基础案例
Nov 07 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 adodb连接不同数据库
2009/03/19 PHP
php对数组排序代码分享
2014/02/24 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python web基础之加载静态文件实例
2018/03/20 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
python用match()函数爬数据方法详解
2019/07/23 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
党员岗位承诺书
2014/03/25 职场文书
捐款活动总结
2014/08/27 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
python 模块重载的五种方法
2021/04/24 Python