我有一個大小為 218、178 的 PNG 圖像。我正在使用 matplotlib 的函數 imread 將其轉換為 ndarray。我想裁剪它以獲得圖像的中間 64X64 部分。我嘗試使用 np.reshape 進行裁剪,但沒有任何意義。我也嘗試將切片作為普通數組進行切片,但由于實際數組的形狀為 (218,178,3),因此無法正確切片。我希望它 (64,64,3) 的前兩個維度從 77 到 141 和 57 到 121。
2 回答

HUH函數
TA貢獻1836條經驗 獲得超4個贊
您想對 numpy 數組的前兩個軸進行切片,分別對應于高度和寬度(第三個是顏色通道)。
import matplotlib.pyplot as pl
# load image
img = pl.imread('my_image.png')
# confirm image shape
print(img.shape)
(218, 178, 3)
這三個數字對應于每個軸的大小,對于圖像通常解釋為:(height, width, depth/colors)。
# crop image
img_cropped = img[77:141, 57:121, :]
# confirm cropped image shape
print(img_cropped.shape)
(64, 64, 3)
另請注意,在裁剪時,您也可以省略最后一個冒號: img[77:141, 57:121]
添加回答
舉報
0/150
提交
取消