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 21 Python
python教程之用py2exe将PY文件转成EXE文件
Jun 12 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Pycharm学习教程(1) 定制外观
May 02 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
Python操作json的方法实例分析
Dec 06 Python
Python饼状图的绘制实例
Jan 15 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 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
3种平台下安装php4经验点滴
2006/10/09 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
python中assert用法实例分析
2015/04/30 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Python 发送邮件方法总结
2020/08/10 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
函授生自我鉴定
2014/03/25 职场文书
工作后的感想
2015/08/07 职场文书
初中语文教学研修日志
2015/11/13 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android