python調用百度人像動漫化


一、代碼

import base64
import requests

class AnimeDemo:
    def __init__(self,AK,SK):
        self.AK=AK
        self.SK=SK
        self.access_token=self.get_access_token()

    def get_access_token(self):
        token_host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}'.format(
            ak=self.AK, sk=self.SK)
        header = {'Content-Type': 'application/json; charset=UTF-8'}
        response = requests.post(url=token_host, headers=header)
        content = response.json()
        access_token = content.get("access_token")
        return access_token

    def baidu_selfie_anime(self,image_path,save_path):
        request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
        # 二進制方式打開圖片文件
        f = open(image_path, 'rb')
        img = base64.b64encode(f.read())
        params = {"image": img}
        request_url = request_url + "?access_token=" + self.access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        try:
            response = requests.post(request_url, data=params, headers=headers)
            if response.status_code==200:
                result= response.json()
                print(result)
                image=result.get("image")
                if image:
                    img_data=base64.b64decode(image)
                    with open(save_path,"wb") as f:
                        f.write(img_data)
                    return {"msg":"完成"}
            return {"msg":"失敗"}
        except Exception as e:
            return {"msg":"失敗:%s"%e}

if __name__ == '__main__':
    AK = "*******"  # 官網獲取的AK 需要你先開通和創建應用
    SK = "*******"  # 官網獲取的SK
    anime_obj = AnimeDemo(AK=AK, SK=SK)
    res=anime_obj.baidu_selfie_anime(r"D:\images\微信圖片_20200722221927.jpg",r"C:\Users\Administrator\Desktop\卡通.jpg")
    print(res)

二、效果

感覺一般般,反正有500次免費的,湊合!

三、增加圖像風格

import base64

import requests


class AnimeDemo:
    def __init__(self, AK, SK):
        self.AK = AK
        self.SK = SK
        self.access_token = self.get_access_token()

    def get_access_token(self):
        token_host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}'.format(
            ak=self.AK, sk=self.SK)
        header = {'Content-Type': 'application/json; charset=UTF-8'}
        response = requests.post(url=token_host, headers=header)
        content = response.json()
        access_token = content.get("access_token")
        return access_token

    def baidu_selfie_anime(self, image_path, save_path):
        request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
        # 二進制方式打開圖片文件
        f = open(image_path, 'rb')
        img = base64.b64encode(f.read())
        params = {"image": img}
        request_url = request_url + "?access_token=" + self.access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        try:
            response = requests.post(request_url, data=params, headers=headers)
            if response.status_code == 200:
                result = response.json()
                print(result)
                image = result.get("image")
                if image:
                    img_data = base64.b64decode(image)
                    with open(save_path, "wb") as f:
                        f.write(img_data)
                    return {"msg": "完成"}
            return {"msg": "失敗"}
        except Exception as e:
            return {"msg": "失敗:%s" % e}

    def baidu_style_trans(self, image_path, save_path):
        '''
        圖像風格轉換
        cartoon:卡通畫風格
        pencil:鉛筆風格
        color_pencil:彩色鉛筆畫風格
        warm:彩色糖塊油畫風格
        wave:神奈川沖浪里油畫風格
        lavender:薰衣草油畫風格
        mononoke:奇異油畫風格
        scream:吶喊油畫風格
        gothic:哥特油畫風格
        '''
        request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/style_trans"
        # 二進制方式打開圖片文件
        f = open(image_path, 'rb')
        img = base64.b64encode(f.read())
        params = {"image": img, "option": "gothic"}
        request_url = request_url + "?access_token=" + self.access_token
        headers = {'content-type': 'application/x-www-form-urlencoded'}
        try:
            response = requests.post(request_url, data=params, headers=headers)
            if response.status_code == 200:
                result = response.json()
                print(result)
                image = result.get("image")
                if image:
                    img_data = base64.b64decode(image)
                    with open(save_path, "wb") as f:
                        f.write(img_data)
                    return {"msg": "完成"}
            return {"msg": "失敗"}
        except Exception as e:
            return {"msg": "失敗:%s" % e}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM