Matplotlib 中的 Imread
這篇文章解釋了我們如何使用 Matplotlib 包中的 imread()
方法將一個影象檔案讀到一個陣列中。
matplotlib.pyplot.imread()
matplotlib.pyplot.imread()
將檔案中的影象讀入一個陣列。
語法
matplotlib.pyplot.imread(fname,
format=None)
這裡,fname
代表要讀取的影象檔案的名稱,format
代表影象檔案的格式。如果 format=None
函式將從檔名中提取格式。
函式返回一個陣列,灰度影象為 MxN
,RGB 影象為 MxNx3
,RGBA 影象為 MxNx4
,其中 M
是影象的寬度,N
是影象的高度。
示例: 使用 matplotlib.pyplot.imread()
函式讀取影象
import numpy as np
import matplotlib.pyplot as plt
img_array=plt.imread("lena.png")
plt.imshow(img_array)
plt.title('Display Image read using imread()')
plt.axis('off')
plt.show()
輸出:
它使用 imread()
方法將當前工作目錄下的影象 lena.png
讀入陣列,然後使用 imshow()
方法顯示影象。
預設情況下,它在顯示的影象中有 X 軸
和 Y 軸
,並帶有刻度線。要刪除軸和刻度,我們使用 plt.axis('off')
語句。最後,我們使用 matplotlib.pyplot.show()
函式來顯示影象。
我們可以使用 shape
屬性來檢視影象陣列的形狀。
import matplotlib.pyplot as plt
img_array=plt.imread("lena.png")
print(img_array.shape)
輸出:
(330, 330, 3)
它列印影象的形狀-(330, 330, 3)
,代表一個三維影象陣列,寬度為 330,高度為 330,有 3 個通道。
示例:使用 matplotlib.pyplot.imread()
函式剪輯影象
在 matplotlib.pyplot.imread()
將影象讀入 NumPy 陣列後,我們可以通過使用:
操作符對陣列進行索引來剪輯影象。
import matplotlib.pyplot as plt
img_array=plt.imread("lena.png")[50:300,30:300]
plt.imshow(img_array)
plt.axis('off')
plt.title("Clipped Image")
plt.show()
輸出:
在這裡,imread()
方法將完整的影象讀取到一個陣列中,我們只選擇寬度為 50 到 300 位置的元素和高度為 30 到 300 位置的元素,並將索引陣列儲存在 img_array
中。然後我們使用 imshow()
函式來顯示索引陣列。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
img_array=plt.imread("lena.png")
fig, ax = plt.subplots()
im = ax.imshow(img_array)
patch = patches.Circle((160, 160), radius=150, transform=ax.transData)
im.set_clip_path(patch)
ax.axis('off')
plt.show()
輸出:
它顯示的是使用圓形補丁剪下的影象。在這裡,我們使用圓形補丁剪裁影象,中心為 (160, 160)
,半徑為 150。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn