使用 Matplotlib 绘制图像

MatplotlibMatplotlibBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用 Python 中的 Matplotlib 库绘制和处理图像。你将学习如何将图像数据导入 NumPy 数组,将 NumPy 数组绘制成图像,应用伪彩色方案,添加颜色刻度参考,检查特定数据范围,以及探索不同的插值方案。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入图像数据

首先,我们需要导入必要的库,并将图像数据加载到 NumPy 数组中。在我们的例子中,我们将使用 PIL 库来加载图像,然后将其转换为 NumPy 数组。

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np

img = np.asarray(Image.open('./stinkbug.png'))

绘制图像

既然我们已经将图像数据存储在 NumPy 数组中,那么就可以使用 matplotlib.pyplot 中的 imshow 函数来绘制它。该函数将图像数组作为输入,并将其显示为图像绘图。

plt.imshow(img)

应用伪彩色方案

伪彩色方案可用于增强对比度并更轻松地可视化数据。如果图像是灰度图,我们可以通过指定不同的颜色映射表来应用伪彩色方案。我们可以通过在 imshow 函数中使用 cmap 参数来做到这一点。

lum_img = img[:, :, 0]
plt.imshow(lum_img, cmap="hot")

添加颜色刻度参考

为了给颜色刻度提供参考,我们可以在绘图中添加一个颜色条。这可以使用 matplotlib.pyplot 中的 colorbar 函数来完成。

imgplot = plt.imshow(lum_img)
plt.colorbar()

检查特定数据范围

有时,可能需要检查图像中的特定数据范围。我们可以通过使用 imshow 函数中的 clim 参数来调整颜色映射表的限制来做到这一点。这使我们能够专注于图像的特定区域,同时牺牲其他区域的细节。

min_value, max_value = 100, 200
plt.imshow(img, clim=(min_value, max_value))

数组插值方案

在调整图像大小时,需要对像素值进行插值以填充缺失的空间。可以使用不同的插值方案根据其周围像素来确定像素的值。Matplotlib 提供了不同的插值选项,例如 “nearest”(最近邻)、“bilinear”(双线性)和 “bicubic”(双三次)。

plt.imshow(img, interpolation="bilinear")

总结

在本实验中,你已经学习了如何使用 Matplotlib 绘制和处理图像。你已经学会了如何将图像数据导入到 NumPy 数组中,将 NumPy 数组绘制成图像,应用伪彩色方案,添加颜色刻度参考,检查特定数据范围,以及探索不同的插值方案。这些技能将有助于在各种应用中可视化和分析图像。