懒咪学编程


Python 去除图片纯色边框(qbit)

时间:2020-09-13 09:52:10  来源:  作者:qbit  所属栏目:Python

前言本文主要参照 Trim whitespace using PIL试验环境Windows 10 2004
Python 3.8.3
Pillow 7.1.2
ImageMagick 7.0.10除了 Pillow 以外,qbit 还尝试了 skimage 和 opencv-py

前言本文主要参照 Trim whitespace using PIL试验环境
Windows 10 2004
Python 3.8.3
Pillow 7.1.2
ImageMagick 7.0.10
除了 Pillow 以外,qbit 还尝试了 skimage 和 opencv-python,效果不比 Pillow 好,且用法复杂很多PillowPillow 文档: https://pillow.readthedocs.io/
# encoding: utf-8
# author: qbit
# date: 2020-06-15
# summary: 去除图片纯色边框
import shutil
from PIL import Image, ImageChops
def TrimImgEdge(inImgPath, outImgPath):
    r""" 
    去除图片边框 
    inImgPath: 输入图片路径
    outImgPath: 输出图片路径
    """
    print(f'TrimImgEdge {inImgPath} ...')
    imgIn = Image.open(inImgPath)
    # 创建一个边框颜色图片
    bg = Image.new(imgIn.mode, imgIn.size, imgIn.getpixel((0, 0)))
    diff = ImageChops.difference(imgIn, bg)
    # diff = ImageChops.add(diff, diff, 2.0, -10) # 可选,会去的更干净,副作用是误伤
    bbox = diff.getbbox()   # 返回左上角和右下角的坐标 (left, upper, right, lower)
    if bbox:
        imgIn.crop(bbox).save(outImgPath, quality=95)
    else:
        shutil.copyfile(inImgPath, outImgPath)
if __name__ == "__main__":
    TrimImgEdge('csharp.jpg', 'csharp_pillow.jpg')
调整尺寸
# LANCZOS 在 Pillow 2.7 以前叫 ANTIALIAS
img.resize((width, height), Image.LANCZOS) 
输入图片样例(点击图片查看边框)

Python 去除图片纯色边框(qbit)

输出图片样例(点击图片查看边框)

Python 去除图片纯色边框(qbit)

ImageMagick使用 ImageMagick 可以达到类似目的
magick convert csharp.jpg -fuzz 7% -trim csharp_magick.jpg
相关阅读

Python 给图片补边

本文出自 qbit snap

原文地址:https://segmentfault.com/a/1190000022940069,作者:qbit

以上就是对Python 去除图片纯色边框(qbit)的相关介绍,希望对您学习有所帮助,感谢您关注懒咪IT学习网!

本文地址:https://c.lanmit.com/bianchengkaifa/Python/119933.html

 

推荐Python排行......