图像增强与特效-API调用实践-百度AI

百度智能云-图像增强-清晰度


最近在整理草稿箱。2022-07-25。我的token应该早过期了哈,需要大家去官网查看最新的api接口+申请替换钥匙喔。

介绍

图像清晰度增强官网介绍&预览
API文档
API调用方式
ApiExplorer平台

实践

Python 解释器

1.交互命令
print('当前 Python 解释器目录:')
print(os.path.dirname(sys.executable))

r"""
当前 Python 解释器目录:
C:\Users\jpch89\AppData\Local\Programs\Python\Python36
"""

2. 直接在控制台查看
Windows 版:cmd下,使用 where python

获取token

# 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=【。。】&client_secret=【。。】'
response = requests.get(host)
if response:
    print(response.json())

响应:


{'refresh_token': '!!', 
'expires_in': 2592000, 'session_key': '',
 'access_token': '!!',
 'scope': ''}

调用

# encoding:utf-8

import requests
import base64

'''
图像清晰度增强
'''

request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/image_definition_enhance"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = '[调用鉴权接口获取的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:
    print (response.json())

参考菜品识别项目
图像识别API调用



# coding=utf-8

import sys
import json
import base64


# 保证兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:
    from urllib.request import urlopen
    from urllib.request import Request
    from urllib.error import URLError
    from urllib.parse import urlencode
    from urllib.parse import quote_plus
else:
    import urllib2
    from urllib import quote_plus
    from urllib2 import urlopen
    from urllib2 import Request
    from urllib2 import URLError
    from urllib import urlencode

# 防止https证书校验不正确
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

API_KEY = 'VlCzAIKSYNgjfkhC8PRLPx0Z'

SECRET_KEY = '0G9cNdtwmx0GxlaCMgjHtvGvWYlTLIMu'


IMAGE_RECOGNIZE_URL = "https://aip.baidubce.com/rest/2.0/image-classify/v2/dish"


"""  TOKEN start """
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'


"""
    获取token
"""
def fetch_token():
    params = {'grant_type': 'client_credentials',
              'client_id': API_KEY,
              'client_secret': SECRET_KEY}
    post_data = urlencode(params)
    if (IS_PY3):
        post_data = post_data.encode('utf-8')
    req = Request(TOKEN_URL, post_data)
    try:
        f = urlopen(req, timeout=5)
        result_str = f.read()
    except URLError as err:
        print(err)
    if (IS_PY3):
        result_str = result_str.decode()

    result = json.loads(result_str)

    if ('access_token' in result.keys() and 'scope' in result.keys()):
        if not 'brain_all_scope' in result['scope'].split(' '):
            print ('please ensure has check the  ability')
            exit()
        return result['access_token']
    else:
        print ('please overwrite the correct API_KEY and SECRET_KEY')
        exit()

"""
    读取文件
"""
def read_file(image_path):
    f = None
    try:
        f = open(image_path, 'rb')
        return f.read()
    except:
        print('read image file fail')
        return None
    finally:
        if f:
            f.close()

"""
    调用远程服务
"""
def request(url, data):
    req = Request(url, data.encode('utf-8'))
    has_error = False
    try:
        f = urlopen(req)
        result_str = f.read()
        if (IS_PY3):
            result_str = result_str.decode()
        return result_str
    except  URLError as err:
        print(err)

"""
    调用菜品识别接口并打印结果
"""
def print_result(filename, url):
    # 获取图片
    file_content = read_file(filename)

    response = request(url, urlencode(
        {
            'image': base64.b64encode(file_content),
            'top_num': 1
        }))
    result_json = json.loads(response)

    # 打印图片结果
    for data in result_json["result"]:
        print(u"  菜品名称: " + data["name"])
        if data[u'has_calorie']:
            print(u"  菜品热量: " + data["calorie"])

if __name__ == '__main__':

    # 获取access token
    token = fetch_token()

    # 拼接图像识别url
    url = IMAGE_RECOGNIZE_URL + "?access_token=" + token

    # 菜品图1
    print("菜品1")
    print_result("./food1.jpg", url)

    # 菜品图3
    print("菜品2")
    print_result("./food2.jpg", url)

    # 菜品图3
    print("菜品3")
    print_result("./food3.jpg", url)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用百度实时语音识别的WebSocket API进行Java调用,你需要以下步骤: 1. 先确认你已经在百度智能平台上创建了自己的应用,并开通了实时语音识别的服务。 2. 下载并导入Java WebSocket客户端库,可以使用Java-WebSocket库,该库可以通过Maven等工具进行导入。 3. 创建一个WebSocket客户端连接,并连接到百度实时语音识别的WebSocket API地址。你可以使用下面的代码来创建和连接WebSocket: ``` import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import java.net.URI; import java.net.URISyntaxException; public class ASRClient extends WebSocketClient { public ASRClient(URI serverUri) { super(serverUri); } @Override public void onOpen(ServerHandshake handshakedata) { System.out.println("Connected to server."); } @Override public void onMessage(String message) { // 处理接收到的识别结果 System.out.println("Received message: " + message); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("Connection closed."); } @Override public void onError(Exception ex) { ex.printStackTrace(); } public static void main(String[] args) { try { ASRClient client = new ASRClient(new URI("wss://asr.baidu.com")); client.connect(); } catch (URISyntaxException e) { e.printStackTrace(); } } } ``` 4. 在`onOpen`方法中,你可以向WebSocket发送请求进行语音识别。你可以使用`send`方法将音频数据发送到服务器。音频数据需要转换为PCM格式,并按照分片大小进行分片发送。 ``` // 发送开始指令 client.send("{\"cmd\":\"asr.start\",\"format\":\"pcm\",\"rate\":16000,\"token\":\"YOUR_ACCESS_TOKEN\",\"cuid\":\"YOUR_USER_ID\",\"len\":0}"); // 发送音频数据分片 client.send(PARTIAL_AUDIO_DATA); // 发送结束指令 client.send("{\"cmd\":\"asr.finish\"}"); ``` 5. 在`onMessage`方法中,你可以处理识别结果。API会实时返回识别结果的JSON数据,你可以根据需要进行解析和处理。 完成了以上步骤,你就可以使用百度实时语音识别的WebSocket API进行Java调用了。记得在代码中替换`YOUR_ACCESS_TOKEN`和`YOUR_USER_ID`为你自己的访问令牌和用户ID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值