python实现去除图片纯色边框和给图片补边
生活随笔
收集整理的這篇文章主要介紹了
python实现去除图片纯色边框和给图片补边
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# encoding: utf-8
# author: qbit
# date: 2020-06-15
# summary: 去除圖片純色邊框
import shutil
from PIL import Image, ImageChops
Image.MAX_IMAGE_PIXELS = 10000000000
import numpy as np
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('IR_3000.png', 'IR_3000(new).png')
Python 給圖片補邊
# encoding: utf-8 # author: qbit # date: 2020-09-2 # summary: 給寬圖片上下補白邊,讓其滿足一定比例,然后縮放到指定尺寸import math from PIL import Image Image.MAX_IMAGE_PIXELS = 10000000000 def add_white_edge(inImgPath, outImgPath, width, height):r"""給寬圖片上下補白邊,讓其滿足一定比例,然后縮放到指定尺寸inImgPath: 輸入圖片路徑outImgPath: 輸出圖片路徑width: 最終寬度height: 最終高度"""print(f'{inImgPath}')inImg: Image.Image = Image.open(inImgPath)bgWidth = inImg.widthbgHeight = inImg.heightif bgWidth > bgHeight:bgHeight = math.ceil((bgWidth * height) / width)# 創建一個白色背景圖片bgImg: Image.Image = Image.new("RGB", (bgWidth, bgHeight), (255, 255, 255))bgImg.paste(inImg, (0, round((bgHeight - inImg.height) / 2)))bgImg.resize((width, height), Image.LANCZOS).save(outImgPath)if __name__ == "__main__":add_white_edge('IR_3000(new).png', 'IR_3000_4.png', 46170, 23085)參考: https://segmentfault.com/a/1190000022940069
參考 : https://segmentfault.com/a/1190000023863720
總結
以上是生活随笔為你收集整理的python实现去除图片纯色边框和给图片补边的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 局域网中的两台主机共享一台显示器
- 下一篇: 西部光伏电站不景气 屋顶光伏春天将至