为了账号安全,请及时绑定邮箱和手机立即绑定

按中心裁剪图像

按中心裁剪图像

智慧大石 2021-09-14 20:23:25
我有一个大小为 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]


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信