Skip to main content
 首页 » 编程设计

python之按中心裁剪图像

2025年05月04日25sharpest

我有一个大小为 218、178 的 PNG 图像。我正在使用 matplotlib 的函数 imread 将其转换为 ndarray。我想裁剪它以获得图像的中间 64X64 部分。

我尝试使用 np.reshape 进行裁剪,但没有任何意义。我还尝试将切片作为普通数组进行切片,但由于实际数组的形状为 (218,178,3),所以我做不对。我希望它 (64,64,3) 的前两个维度从 77 到 141,从 57 到 121。

请您参考如下方法:

你想对 numpy 数组的前两个轴进行切片,分别对应高度和宽度(第三个是颜色 channel )。

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]