Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.
Сегодня я собираюсь сделать очень интересную вещь, а именно анимировать аватары персонажей. С этой статьей легко начать работу, и для Xiaobai не составит труда ее использовать.Вы можете управлять ею напрямую и использовать ее. Результаты, как показано ниже.
Адрес API Байду:Love.Baidu.com/Specialties/image P…
Техническая документация:love.baidu.com/love-doc/Я маг…
Здесь используется API Baidu Smart Cloud.Сначала вам необходимо зарегистрировать учетную запись Baidu, а затем войти в Baidu Smart Cloud. Откройте для реализации портретной анимации и создания приложений. Анимация персонажей здесь предназначена для обработки изображений персонажей в анимационные изображения.
Здесь используется API Baidu, в документации есть подробное описание использования, можете проверить сами.
# encoding:utf-8
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
print(response.json())
Сначала соберите приложение, а затем проверьте ваш client_id=[AK, полученный с официального сайта]&client_secret=[SK, полученный с официального сайта]. Просто заполните эти две вещи. Тогда response.json() будет содержать необходимый access_token. access_token необходим для полного кода ниже.
import requests
import base64
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxx &client_secret=xxx2'
response = requests.get(host)
if response:
access_token= response.json()["access_token"]
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二进制方式打开需要处理图片文件
f = open('1.jpg', 'rb') # 打开需要处理的图片
img = base64.b64encode(f.read())
params = {"image":img}
request_url = request_url + "?access_token=" + access_token
response = requests.post(request_url, data=params)
print(response)
if response:
# 保存文件
f = open('2.jpg', 'wb')
img = (response.json()['image'])
f.write(base64.b64decode(img))
f.close()
Вышеупомянутый процесс получения access_token был завершен, а затем обработка изображения выполняется через следующий API-адрес URL.
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
Не забудьте открыть картинку, вам нужно использовать бинарный метод открытия,b64decodeОсновная функция функции состоит в том, чтобыbase64закодированныйbytes-likeобъект илиASCIIстрока для декодирования.
Затем данные всей картинки передаются в качестве параметра в апи, а апи нужно добавить только что полученный выше access_token.
Наконец, получите ответный ответ, если ответ в порядке, то получите возвращенное двоичное значение в формате json.response.json()['image']. После кодирования этого значения запишите его в файл 2.jpg
На самом деле в API Baidu Smart Cloud довольно много интересных функций. Есть распознавание текста, распознавание животных, и студенты, которые заинтересованы в практике своих рук, могут на самом деле подняться и бросить примеры API и исходного кода, которые в основном понятны с первого взгляда.
Не стесняйтесь обсуждать со мной программу, а также отвечать на вопросы.Обратите внимание на общедоступный номер: Поэтический код, подружиться.