Android接入腾讯OCR进行文字识别

今天尝试在Android平台中接入腾讯的文字识别,看到文档中也提供了相应的JAVA SDK,于是二话没说就开始引入来尝试实现一次接口的调用。当点击运行的时候才发现没那么简单,直接报错DatatypeConverter类找不到,其实官方提供的Java SDK是不支持Android。那么这个时候就有人说了,不就是接口调用嘛?!直接根据接口文档传递相应的参数去发Http请求好了!嗯!当然可以,这绝对是最轻量级的接!但是需要你自己实现签名的算法,这个部分出错的几率非常高,当然也可以直接去给出的JAVA SDK中把签名这一部分的代码copy下来。由于我只需要最基础的印刷体文字识别的功能,但是SDK中却囊括了腾讯云平台所有的功能。因此在实现android的兼容后对其中用不到的功能进行了删减,只保留了自己所需的文字识别功能。

项目地址:https://github.com/Merpyzf/TencentOCR

其实直接在本地进行签名其实并不安全,推荐还是放在服务端进行。有和本大侠有同样需求的朋友可以直接下载本项目到本地,然后导入的自己的项目中就可以了。当然导入后还需要你修改发生路径变更的包名。

好的,使用腾讯OCR进行文字识别需要以下步骤: 1. 注册并登录腾讯云账号,在控制台中开通腾讯OCR服务,获取API密钥。 2. 在代码中引入腾讯OCR SDK,并使用API密钥进行身份验证。 3. 准备要识别的图片,并将其转换为Base64格式。 4. 调用腾讯OCR的API,传入图片数据并设置识别类型(如通用文字识别、身份证识别等)。 5. 解析API返回的识别结果,获取识别出的文字内容。 以下是一个Python示例代码,用于使用腾讯OCR进行通用文字识别: ``` import base64 import json import requests # 设置密钥和API地址 app_id = "your_app_id" app_key = "your_app_key" api_url = "https://recognition.image.myqcloud.com/ocr/general" # 准备图片数据 with open('image.jpg', 'rb') as f: image_data = f.read() image_base64 = str(base64.b64encode(image_data), 'utf-8') # 构造请求参数 params = { "appid": app_id, "image": image_base64, "nonce_str": "random_string", "time_stamp": str(int(time.time())), } # 生成签名 sign_str = "&".join([f"{key}={params[key]}" for key in sorted(params.keys())]) sign_str += f"&appkey={app_key}" sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper() # 发送POST请求 headers = {'Content-Type': 'application/json'} data = { "appid": app_id, "image": image_base64, "nonce_str": "random_string", "time_stamp": str(int(time.time())), "sign": sign, } response = requests.post(api_url, headers=headers, data=json.dumps(data)) # 解析结果 result = json.loads(response.text) if result.get("code") == 0: words_list = result.get("data").get("item_list") for words in words_list: print(words.get("itemstring")) else: print(result.get("message")) ``` 需要注意的是,使用腾讯OCR服务需要收取一定的费用,具体费用标准可以在腾讯云控制台中查看。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值