【发布时间】:2017-01-22 10:56:49
【问题描述】:
我有许多图像要裁剪,然后再整形。为了帮助我解决这个问题,我编写了两个辅助函数:
def crop_images(images_data):
cropped_images = []
for image_data in images_data:
image = Image.fromarray(image_data)
cropped_image = np.asarray(image.crop((25,40,275,120)))
cropped_images.append(cropped_image)
return(np.array(cropped_images))
def resize_images(images_data):
resized_images = []
width, height = images_data.shape[2], images_data.shape[1]
resized_width, resized_height = int(width/2), int(height/2)
for image_data in images_data:
image = Image.fromarray(image_data)
image = image.resize((resized_width, resized_height), Image.ANTIALIAS)
resized_images.append(np.asarray(image))
return(np.array(resized_images))
然后我会将这两个函数链接在一起来处理我的图像,例如:
resize_images(crop_images(images_data))
但我想知道是否有办法对这些操作进行矢量化,因为我知道 numpy 理想情况下应该是矢量化操作,因为它更快。
【问题讨论】:
-
您似乎正在裁剪为相同的形状?如果是这样,如果您还没有这样做,那么使用初始化的输出数组将是有意义的。
-
在这种情况下,使用 numpy 进行裁剪似乎比使用 Image 库进行裁剪更为理想。
标签: python numpy python-imaging-library