jupyter 使用Pillow包显示图像时inline显示方式
作者:Jack_Kuo 发布时间:2021-09-08 00:42:02
标签:jupyter,Pillow,图像,inline
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()
例子如下:
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(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、报错:
错误提示: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之后可正确运行出结果:
来源:https://blog.csdn.net/weixin_37251044/article/details/81137726


猜你喜欢
- 版本更新,原来user里的password字段已经变更为authentication_string版本更新 缘故,好多网上的教程都不适用了,
- 函数的参数:Python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广泛;不但使得函数能够处理复杂多变的参数,还能简化函数
- 前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个
- Ctrl+N 按文件名搜索py文件ctrl+n可以搜索py文件勾选上面这个框可以搜索工程以外的文件Ctrl+shift+N 按文件名搜索所有
- 一:直接把MDB(MDE)文件放到网络中的共享目录中,在客户端做好对应的快捷方式二:数据库折分(菜单:工具,实用工具,折分)成前后台,把后台
- 背景:线上机器,需要过滤access日志,发送给另外一个api期初是单进程,效率太低,改为多进程发送后,查看日志中偶尔会出现异常错误(忘记截
- 在python显示图象时,我们用matplotlib模块时会遇到图像色彩失真问题,究竟是什么原因呢,下面就来看看究竟。待显示图像为:impo
- 在很多应用程序开发中,需要记录某些数据表的历史记录或修改痕迹,以便日后出现数据错误时进行数据排查。这种业务需求,我们可以通过数据库的触发器来
- 安装 setuptools 工具任务时间:1min ~ 5min安装yum install python-setuptools -y因为之后
- Codeigniter支持缓存技术,以达到最快的速度。尽管CI已经相当高效了,但是网页中的动态内容、主机的内存CPU和数据库读取速度等因素直
- 事件背景最近业务研发反映了一个需求:能不能让现有基于 gin 的 webservice 框架能够自己输出 response 的信息,尤其是
- 本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-
- Paddle模型性能分析Profiler定位性能瓶颈点优化程序提升性能Paddle Profiler是飞桨框架自带的低开销性能分析器,可以对
- 这里介绍几个常用的列表操作添加元素添加元素使用列表的内置方法appendnumber = [1, 2, 3, 4]number.append
- 本文实例总结了Python中numpy模块常见用法。分享给大家供大家参考,具体如下:import numpy as nparr = np.a
- hello.html 文件代码如下:HelloWorld/templates/hello.html 文件代码:<h1>{{ he
- 常用时间转换及处理函数:import datetime# 获取当前时间d1 = datetime.datetime.now()print d
- 1. 前言所谓的逃逸分析(Escape analysis)是指由编译器决定内存分配的位置吗不需要程序员指定。函数中申请一个新的对象如果分配在
- 前言Go语言的 sort 包实现了内置和用户定义类型的排序,sort包中实现了3种基本的排序算法:插入排序.快排和堆排序.和其他语言中一样,
- 摘要:如果你学过 C 语言,那么当你初见 Python 时可能会觉得 Python 的赋值方式略有诡异:好像差不多,但又好像哪里有点不太对劲