Heim >Backend-Entwicklung >Python-Tutorial >Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

青灯夜游
青灯夜游nach vorne
2022-10-21 20:03:594374Durchsuche

Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

Manchmal müssen wir die Hintergrundfarbe unserer Ausweisfotos ändern und haben keine Zeit, ins Fotostudio zu gehen, um Fotos zu machen, und es ist nicht einfach, die Bilder mit PS auszuschneiden, also werde ich es heute tun Teilen Sie mit Ihnen, wie Sie mit Python die Bilder ausschneiden und die Hintergrundfarbe ändern können eingeben und authentifizieren.

Die Analyse des menschlichen Körpers finden Sie auf der Homepage der Konsole.

  • Erstellen Sie eine Anwendung.

Sie können darin schreiben, was Sie wollen, aber neue Benutzer müssen kostenlose Ressourcen erhalten, sonst haben sie gewonnen Ich kann es nicht benutzen. Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

Nach Abschluss der Erstellung notieren Sie die Werte von API Key und Secret Key in der Anwendungsliste, die später verwendet werden. Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

An diesem Punkt sind die Aufgaben der Registrierung eines Kontos und der Erstellung eines Antrags abgeschlossen. Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

2: Code-Implementierung 1. Bibliothek vorstellen

Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle

import os
import requests
import base64
import cv2
import numpy as np
from PIL import Image
from pathlib import Path

path = os.getcwd()
paths = list(Path(path).glob('*'))

2. Zugriffstoken erhalten

def get_access_token():
    url = 'https://aip.baidubce.com/oauth/2.0/token'
    data = {
        'grant_type': 'client_credentials',  # 固定值
        'client_id': '替换成你的API Key',  # 在开放平台注册后所建应用的API Key
        'client_secret': '替换成你的Secret Key'  # 所建应用的Secret Key
    }
    res = requests.post(url, data=data)
    res = res.json()
    access_token = res['access_token']
    return access_token
Führen Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle Kerncode

Wenn Sie Fragen zum Artikel haben: com/?_wv=1027&k=s5bZE0K3

def removebg():
    try:
        request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg"
        # 二进制方式打开图片文件
        f = open(name, 'rb')
        img = base64.b64encode(f.read())
        params = {"image":img}
        access_token = get_access_token()
        request_url = request_url + "?access_token=" + access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        response = requests.post(request_url, data=params, headers=headers)
        if response:
            res = response.json()["foreground"]
            png_name=name.split('.')[0]+".png"
            with open(png_name,"wb") as f:
                data = base64.b64decode(res)
                f.write(data)
            fullwhite(png_name) #png图片底色填充,视情况舍去
            png_jpg(png_name) #png格式转jpg,视情况舍去
            os.remove(png_name) #删除原png图片,视情况舍去
            print(name+"\t处理成功!")
    except Exception as e:
        pass

4. Bildhintergrundfarbe füllen

def fullwhite(png_name):
    im = Image.open(png_name)
    x,y = im.size
    try:
        p = Image.new('RGBA', im.size, (255,255,255))        # 使用白色来填充背景,视情况更改
        p.paste(im, (0, 0, x, y), im)
        p.save(png_name)
    except:
        pass

5. Bildkomprimierung

#compress_rate:数值越小照片越模糊
def resize(compress_rate = 0.5):
    im = Image.open(name)
    w, h = im.size
    im_resize = im.resize((int(w*compress_rate), int(h*compress_rate)))
    resize_w, resieze_h = im_resize.size
    #quality 代表图片质量,值越低越模糊
    im_resize.save(name)
    im.close()

7.png-Format zu jpg

def get_size():
    size = os.path.getsize(name)
    return size / 1024

8. Hauptfunktion
def png_jpg(png_name):
    im = Image.open(png_name)
    bg=Image.new('RGB',im.size,(255,255,255))
    bg.paste(im)
    jpg_name = png_name.split('.')[0]+".jpg"
    #quality 代表图片质量,值越低越模糊
    bg.save(jpg_name,quality=70)
    im.close()

9. Vollständiger Code

Wenn Sie Fragen zum Artikel haben, können Sie mir eine private Nachricht senden oder hierher kommen: https://jq.qq.com /?_wv=1027&k=s5bZE0K3
if __name__ == '__main__':
    for i in paths:
        name = os.path.basename(i.name)
        if(name==os.path.basename(__file__)):
            continue
        size = get_size()
        ##照片压缩
        while size >=900:
            size = get_size()
            resize()   
        removebg()
        print(" ")

[Wichtig] Vorsichtsmaßnahmen vor der Verwendung

1. Dieses Programm überschreibt die Originaldatei. Bitte sichern Sie die Datei vor der Verwendung, um Datenverlust zu vermeiden 2. Kopieren Sie das Programm nach und Doppelklicken Sie im selben Verzeichnis wie die zu verarbeitenden Fotos auf das Programm, um es auszuführen

Code zählt nicht. Es gibt viele kleine Probleme auf dem Weg. Beispielsweise darf die Bildgröße 4 MB nicht überschreiten, und es gibt Probleme wie Pfade um diese Funktion zu implementieren! Okay, das heutige Teilen endet hier ~

[Verwandte Empfehlungen:

Python3-Video-Tutorial
]

Das obige ist der detaillierte Inhalt vonFühren Sie Sie Schritt für Schritt durch die Implementierung des Ausschnitts und die Änderung der Hintergrundfarbe über die Python-Aufrufschnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen