使用PIL修剪空白

使用PIL修剪空白

有没有简单的解决方案可以在PIL中修剪图像上的空白?


ImageMagick可以通过以下方式轻松支持它:


convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg

我找到了PIL的解决方案:


from PIL import Image, ImageChops


def trim(im, border):

    bg = Image.new(im.mode, im.size, border)

    diff = ImageChops.difference(im, bg)

    bbox = diff.getbbox()

    if bbox:

        return im.crop(bbox)

但是此解决方案有缺点:


我需要定义border颜色,对我来说这并不重要,我的图像有白色背景

最不利的是,此PIL解决方案不支持ImageMagick的-fuzz密钥。要添加一些模糊裁剪。因为我可以有一些jpeg压缩伪像和不需要的巨大阴影。

可能PIL具有一些内置功能吗?还是有一些快速的解决方案?


慕田峪4524236
浏览 476回答 3
3回答

精慕HU

在ufp.image模块上使用修整功能。import ufp.imageimport PILim = PIL.Image.open('test.jpg', 'r')trimed = ufp.image.trim(im, fuzz=13.3)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python