Jupyter Notebook 中使用 Pillow 和 Matplotlib 显示图像的内联方式

0 下载量 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 的浏览器上边显示多个图片,包括灰色图片和彩色图片。