Jupyter Notebook 中使用 Pillow 和 Matplotlib 显示图像的内联方式
32 浏览量
更新于2024-08-30
收藏 214KB PDF 举报
Jupyter 中使用 Pillow 包显示图像时的 inline 显示方式
在 Jupyter Notebook 中,使用 Pillow 包显示图像时,默认情况下会弹出新窗口显示图像。为了在浏览器上边显示图片,我们可以使用 matplotlib.pyplot 和 Pillow 结合使用,实现 inline 显示方式。
使用 Pillow 包时遇到的问题
在使用 Pillow 包时,默认情况下,图片会弹出新窗口显示,如下所示:
```
from Pillow import Image
img = Image.open('data/empire.jpg')
img.show()
```
使用 matplotlib.pyplot 和 Pillow 结合使用
为了在 Jupyter Notebook 的浏览器上边显示图片,我们可以使用 matplotlib.pyplot 和 Pillow 结合使用。首先,我们需要在 Jupyter Notebook 中添加魔术命令 `%matplotlib inline`,然后使用 matplotlib.pyplot 显示图片,如下所示:
```
%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()
```
显示灰色图片和多个图片
我们可以使用 Pillow 将图片转换为灰色图片,然后使用 matplotlib.pyplot 显示多个图片,如下所示:
```
%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('image: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.show()
```
通过上面的代码,我们可以在 Jupyter Notebook 的浏览器上边显示多个图片,包括灰色图片和彩色图片。
2023-03-28 上传
2024-06-20 上传
点击了解资源详情
2020-09-19 上传
点击了解资源详情
2023-08-31 上传
2024-09-22 上传
2023-06-12 上传
2024-04-20 上传
weixin_38729399
- 粉丝: 7
- 资源: 902
最新资源
- Java毕业设计项目:校园二手交易网站开发指南
- Blaseball Plus插件开发与构建教程
- Deno Express:模仿Node.js Express的Deno Web服务器解决方案
- coc-snippets: 强化coc.nvim代码片段体验
- Java面向对象编程语言特性解析与学生信息管理系统开发
- 掌握Java实现硬盘链接技术:LinkDisks深度解析
- 基于Springboot和Vue的Java网盘系统开发
- jMonkeyEngine3 SDK:Netbeans集成的3D应用开发利器
- Python家庭作业指南与实践技巧
- Java企业级Web项目实践指南
- Eureka注册中心与Go客户端使用指南
- TsinghuaNet客户端:跨平台校园网联网解决方案
- 掌握lazycsv:C++中高效解析CSV文件的单头库
- FSDAF遥感影像时空融合python实现教程
- Envato Markets分析工具扩展:监控销售与评论
- Kotlin实现NumPy绑定:提升数组数据处理性能