使用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'))
这段代码的工作流程如下:
- 定义去除白边的函数:
trim_white_border函数首先创建一个与原图相同大小的背景图片bg,背景色取自原图的第一个像素。 - 计算差异:使用
ImageChops.difference计算原图和背景图的差异。 - 增强差异:通过
ImageChops.add增强差异,使得白边更加明显。 - 计算边界:使用
diff.getbbox()获取去除白边后的图像边界。 - 裁剪图片:如果存在边界,使用
image.crop(bbox)裁剪原图。
使用方法
此脚本会遍历当前目录下的所有.jpg文件,对每个文件应用trim_white_border函数去除白边,并保存裁剪后的图片。
运行条件
- Python环境:Python 3.x
- 所需库:Pillow
- 输入:当前目录下的
.jpg格式图片
结论
通过这个脚本,您可以自动化地批量去除一系列图片的白边,对于处理大量图片或批量优化图像非常有用。

962

被折叠的 条评论
为什么被折叠?



