【图片处理】使用Python批量截去图片的白边

该文章已生成可运行项目,

使用Python和Pillow批量去除图片白边

在图像处理中,去除图片的白边是一个常见需求,特别是在处理扫描文档或优化图形设计时。本篇博客将介绍如何使用Python的Pillow库来自动去除图片的白边。
在这里插入图片描述

介绍Pillow库

Pillow是Python的一个图像处理库,它提供了丰富的图像操作功能,如读取、修改和保存各种格式的图片。Pillow是Python Imaging Library (PIL)的一个分支,因其易用性和功能强大而受到广泛欢迎。

环境准备

在开始之前,请确保您的Python环境中已安装Pillow库。如果还未安装,可以通过以下命令安装:

pip install Pillow

代码解析

以下是一个用于去除图片白边的Python函数:

from PIL import Image, ImageChops

def trim_white_border(image):
    bg = Image.new(image.mode, image.size, image.getpixel((0,0)))
    diff = ImageChops.difference(image, bg)
    diff = ImageChops.add(diff, diff, 2.0, -100)
    bbox = diff.getbbox()
    if bbox:
        return image.crop(bbox)

for file in os.listdir('.'):
    if file.endswith('.jpg'):
        image = Image.open(file)
        trimmed_image = trim_white_border(image)
        trimmed_image.save(file.replace('.jpg', '_trimmed.jpg'))

这段代码的工作流程如下:

  1. 定义去除白边的函数trim_white_border函数首先创建一个与原图相同大小的背景图片bg,背景色取自原图的第一个像素。
  2. 计算差异:使用ImageChops.difference计算原图和背景图的差异。
  3. 增强差异:通过ImageChops.add增强差异,使得白边更加明显。
  4. 计算边界:使用diff.getbbox()获取去除白边后的图像边界。
  5. 裁剪图片:如果存在边界,使用image.crop(bbox)裁剪原图。

使用方法

此脚本会遍历当前目录下的所有.jpg文件,对每个文件应用trim_white_border函数去除白边,并保存裁剪后的图片。

运行条件

  • Python环境:Python 3.x
  • 所需库:Pillow
  • 输入:当前目录下的.jpg格式图片

结论

通过这个脚本,您可以自动化地批量去除一系列图片的白边,对于处理大量图片或批量优化图像非常有用。

本文章已经生成可运行项目
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fatal Hog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值