<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python頭像動漫化,快來生成一個自己的動漫頭像吧

          共 3652字,需瀏覽 8分鐘

           ·

          2020-08-03 23:17

          一、前言

          很多時候我們都會為頭像發(fā)愁,像我這種萬年不換頭像的咸魚從來沒有這種煩惱。但是吧,有個個性化的頭像還是非常有趣的,因為這個摳鼻屎的頭像除了摳鼻屎這點,其它都很符合本人的氣質(zhì),所以已經(jīng)夠用了。但是我還是打算把這個小技巧給大家分享。

          二、效果展示

          在我多次測試后,發(fā)現(xiàn)女生頭像的生成還是比較不錯的,而且最好是正面照。而男生動漫頭像的生成就有點差強人意了,大家可以自己試試,下面我們看看我用有村大妹子生成的兩張圖片,我們先看第一張:


          接下來是第二張,我用的是墊底辣妹中的形象:


          兩張效果都還可以,主要還是人物的頭部動漫化了,其它部分只是趨于動漫的風(fēng)格。不過我覺得還是很可以的。

          三、實現(xiàn)

          對于我這種基本功不扎實的人來說,實現(xiàn)這種只能調(diào)用API了。我使用的是百度的API,我們可以進(jìn)入百度AI開放平臺注冊賬號,具體流程就不講了。登陸后我們可以看到如下界面:

          在這里插入圖片描述

          我們依次點擊開放能力》圖像技術(shù)》人像動漫化,然后我們點擊立即使用,再創(chuàng)建應(yīng)用就可以了。在應(yīng)用里面我們可以看到三個參數(shù)AppID、API KeySecret Key三個參數(shù),我們把這三個參數(shù)記住就可以開始我們的編程了。

          實現(xiàn)人像動漫化需要用到兩個接口,一個用來獲取access_token,另一個則是用來獲取動漫頭像,我們來獲取access_token:

          import?requests
          def?get_access_token():
          ????#?獲取token的API
          ????url?=?'https://aip.baidubce.com/oauth/2.0/token'
          ????#?獲取access_token需要的參數(shù)
          ????params?=?{
          ????????#?固定參數(shù)
          ????????'grant_type':'client_credentials',
          ????????#?必選參數(shù),傳入你的API?Key
          ????????'client_id':'你的API?Key',
          ????????#?必選參數(shù),傳入你的Secret?Key
          ????????'client_secret':'你的Secret?Key'
          ????}
          ????#?發(fā)送請求,獲取響應(yīng)數(shù)據(jù)
          ????response?=?requests.post(url,?params)
          ????#?將響應(yīng)的數(shù)據(jù)轉(zhuǎn)成字典類型,然后取出access_token
          ????access_token?=?eval(response.text)['access_token']
          ????#?將access_token返回
          ????return?access_token

          這里我們用到了requests模塊,如果沒有安裝的可以在命令行執(zhí)行下列語句:

          pip?install?requests

          接下來就是我們頭像動漫化了:

          import?base64
          import?requests
          def?img2Cartoon(img):
          ????#?頭像動漫化的API
          ????url?=?'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
          ????#?以二進(jìn)制的方式讀取原始圖片
          ????origin_im?=?open(img,?'rb')
          ????#?將圖片進(jìn)行base64編碼
          ????img?=?base64.b64encode(origin_im?.read())
          ????#?關(guān)閉原圖片
          ????origin_im.close()

          ????#?請求的headers信息,固定寫法
          ????headers?=?{'content-type':'application/x-www-form-urlencoded'}

          ????#?請求的參數(shù)
          ????params?=?{
          ????????#?開始獲取的access_token
          ????????'access_token':get_access_token(),
          ????????#?圖片的base64編碼
          ????????'image':img,
          ????}
          ????#?發(fā)送請求
          ????response?=?requests.post(url,?data=params,?headers=headers)
          ????#?對響應(yīng)結(jié)果進(jìn)行處理
          ????if?response:
          ????????#?打開一個文件
          ????????f?=?open('result.jpg',?'wb')
          ????????#?獲取動漫頭像
          ????????anime?=?response.json()['image']
          ????????#?對返回的頭像進(jìn)行解碼
          ????????anime?=?base64.b64decode(anime)
          ????????#?將頭像寫入文件當(dāng)中
          ????????f.write(anime)
          ????????f.close()

          我們只需要在main中調(diào)用img2Cartoon函數(shù)即可完成動漫頭像的生成,完整代碼如下:

          import?base64
          import?requests

          def?get_access_token():
          ????#?獲取token的API
          ????url?=?'https://aip.baidubce.com/oauth/2.0/token'
          ????#?獲取access_token需要的參數(shù)
          ????params?=?{
          ????????#?固定參數(shù)
          ????????'grant_type':'client_credentials',
          ????????#?必選參數(shù),傳入你的API?Key
          ????????'client_id':'你的API?Key',
          ????????#?必選參數(shù),傳入你的Secret?Key
          ????????'client_secret':'你的Secret?Key'
          ????}
          ????#?發(fā)送請求,獲取響應(yīng)數(shù)據(jù)
          ????response?=?requests.post(url,?params)
          ????#?將響應(yīng)的數(shù)據(jù)轉(zhuǎn)成字典類型,然后取出access_token
          ????access_token?=?eval(response.text)['access_token']
          ????#?將access_token返回
          ????return?access_token

          def?img2Cartoon(img):
          ????#?頭像動漫化的API
          ????url?=?'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'
          ????#?以二進(jìn)制的方式讀取原始圖片
          ????origin_im?=?open(img,?'rb')
          ????#?將圖片進(jìn)行base64編碼
          ????img?=?base64.b64encode(origin_im?.read())
          ????#?關(guān)閉原圖片
          ????origin_im.close()

          ????#?請求的headers信息,固定寫法
          ????headers?=?{'content-type':'application/x-www-form-urlencoded'}

          ????#?請求的參數(shù)
          ????params?=?{
          ????????#?開始獲取的access_token
          ????????'access_token':get_access_token(),
          ????????#?圖片的base64編碼
          ????????'image':img,
          ????}
          ????#?發(fā)送請求
          ????response?=?requests.post(url,?data=params,?headers=headers)
          ????#?對響應(yīng)結(jié)果進(jìn)行處理
          ????if?response:
          ????????#?打開一個文件
          ????????f?=?open('result.jpg',?'wb')
          ????????#?獲取動漫頭像
          ????????anime?=?response.json()['image']
          ????????#?對返回的頭像進(jìn)行解碼
          ????????anime?=?base64.b64decode(anime)
          ????????#?將頭像寫入文件當(dāng)中
          ????????f.write(anime)
          ????????f.close()

          if?__name__?==?'__main__':
          ????img2Cartoon('origin.jpg')

          這樣我們就實現(xiàn)了頭像動漫化的操作,非常簡單,因為主要的工作都由百度的程序員幫我們實現(xiàn)了,大家可以使用自己的照片生成一些個性化的頭像。如果太丑的話不要跑回來罵我就好了。

          瀏覽 28
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩v欧美v | 日韩欧美国产成人电影 | 欧美大香蕉网站 | 777大香蕉 | 大香蕉在线观看成人 |