显示图片
虽然 matplotlib 通常都是应用在绘制图表的领域,但 matplotlib 的显示图表功能,也可以作为“显示图片”使用,这篇教学将会介绍 matplotlib 显示图片的做法。
- 本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
- 使用 Colab 操作需要连动 Google 云端硬盘,请参考:连动 Google Drive
读取并显示图片
要用 matplotlib 显示图片,要先透过 matplotlib.image 模组中的 imread() 方法读取图片,读取后使用 imshow() 在图表中绘制图片,最后透过 plt.show() 显示图表。
imshow() 的参数可以进行图片颜色的相关设定,但如果要调整颜色,通常会透过 Pillow 或 OpenCV 进行处理,相关参数说明参考:matplotlib.pyplot.imshow
import matplotlib.pyplot as plt
import matplotlib.image as img
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 如果是用 Colab 需要改變路徑
image = img.imread('mona.jpg') # 讀取圖片
plt.imshow(image) # 在圖表中繪製圖片
plt.show() # 顯示圖表
改变图片显示的尺寸
如果要改变图片显示的尺寸,可以透过修改图表的尺寸来实现,下方程序码执行后,会将图表放大为 10x10 英寸,绘制在图表里的图片就会跟着放大。
import matplotlib.pyplot as plt
import matplotlib.image as img
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks')
image = img.imread('mona.jpg')
plt.figure(figsize=(10,10)) # 改變圖表尺寸
plt.imshow(image)
plt.show()
同时显示多张图片
如果要同时显示多张图片,可透过“建立多个子图表”的方式,在子图表中显示图片。
import matplotlib.pyplot as plt
import matplotlib.image as img
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 如果是用 Colab 需要改變路徑
plt.figure(figsize=(10,10)) # 改變圖表尺寸
image = img.imread('mona.jpg')
plt.subplot(221) # 建立 2x2 子圖表的左上方圖表
plt.imshow(image) # 在子圖表中繪製圖片
image = img.imread('girl.jpg')
plt.subplot(222) # 建立 2x2 子圖表的右上方圖表
plt.imshow(image) # 在子圖表中繪製圖片
image = img.imread('meme.jpg')
plt.subplot(223) # 建立 2x2 子圖表的左下方圖表
plt.imshow(image) # 在子圖表中繪製圖片
image = img.imread('bg.jpg')
plt.subplot(224) # 建立 2x2 子圖表的右下方圖表
plt.imshow(image) # 在子圖表中繪製圖片
plt.show()
显示 Pillow 处理过的图片
matplotlib 的显示图片可以显示 Pillow 处理后的图片,下方程序码执行后,会利用 Pillow 的 Image.open() 方法打开图片,使用 ImageEnhance.Brightness() 方法调整亮度,最后再透过 matplotlib 一次显示四张不同亮度的图片。
import matplotlib.pyplot as plt
import matplotlib.image as img
from PIL import Image, ImageEnhance
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 如果是用 Colab 需要改變路徑
plt.figure(figsize=(10,10))
img = Image.open("mona.jpg") # 開啟圖片
enhancer = ImageEnhance.Brightness(img) # 建立調整亮度的方法
plt.subplot(221)
plt.imshow(img) # 顯示原圖
plt.subplot(222)
img2 = enhancer.enhance(0.5) # 顯示亮度 x0.5 的圖片
plt.imshow(img2)
plt.subplot(223)
img3 = enhancer.enhance(1.5) # 顯示亮度 x1.5 的圖片
plt.imshow(img3)
plt.subplot(224)
img4 = enhancer.enhance(3) # 顯示亮度 x3 的圖片
plt.imshow(img4)
plt.show()
微信扫码关注
抖音扫码关注