gpt4 book ai didi

python - 使用 PIL 自动裁剪图像

转载 作者:太空狗 更新时间:2023-10-30 01:34:54 27 4
gpt4 key购买 nike

我有一个装满图像的文件夹,每个图像至少包含 4 个较小的图像。我想知道如何使用 Python PIL 剪切较小的图像,以便它们都作为独立的图像文件存在。幸运的是有一个常量,背景要么是白色要么是黑色所以我猜我需要的是一种通过搜索完全黑色或完全白色的行或最好是列来剪切这些图像的方法,这是一个示例图像:

enter image description here

在上图中,将有 10 张单独的图片,每张图片都包含一个数字。提前致谢。

编辑:我有另一个更真实的示例图像,因为一些较小图像的背景与它们所包含的图像的背景颜色相同。例如

enter image description here

输出13张独立图片,每张包含1个字母

最佳答案

使用 scipy.ndimage 进行标注:

import numpy as np
import scipy.ndimage as ndi
import Image

THRESHOLD = 100
MIN_SHAPE = np.asarray((5, 5))

filename = "eQ9ts.jpg"
im = np.asarray(Image.open(filename))
gray = im.sum(axis=-1)
bw = gray > THRESHOLD
label, n = ndi.label(bw)
indices = [np.where(label == ind) for ind in xrange(1, n)]
slices = [[slice(ind[i].min(), ind[i].max()) for i in (0, 1)] + [slice(None)]
for ind in indices]
images = [im[s] for s in slices]
# filter out small images
images = [im for im in images if not np.any(np.asarray(im.shape[:-1]) < MIN_SHAPE)]

关于python - 使用 PIL 自动裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com