Ant*_*uiz 2 python png matplotlib multidimensional-array
我有一个大小为 218、178 的 PNG 图像。我正在使用 matplotlib 的函数 imread 将其转换为 ndarray。我想裁剪它以获得图像的中间 64X64 部分。
我尝试使用 np.reshape 进行裁剪,但没有任何意义。我还尝试将切片作为普通数组进行切片,但由于实际数组的形状为 (218,178,3),因此无法正确切片。对于前两个维度,我希望它 (64,64,3) 从 77 到 141 和 57 到 121。
您想要切片 numpy 数组的前两个轴,分别对应于高度和宽度(第三个是颜色通道)。
import matplotlib.pyplot as pl
# load image
img = pl.imread('my_image.png')
# confirm image shape
print(img.shape)
Run Code Online (Sandbox Code Playgroud)
(218, 178, 3)
这三个数字对应于每个轴的大小,对于图像通常解释为:(height, width, depth/colors)。
# crop image
img_cropped = img[77:141, 57:121, :]
# confirm cropped image shape
print(img_cropped.shape)
Run Code Online (Sandbox Code Playgroud)
(64, 64, 3)
另请注意,在裁剪时,您也可以省略最后一个冒号:
img[77:141, 57:121]
| 归档时间: |
|
| 查看次数: |
10777 次 |
| 最近记录: |