我们参加了本次大学生创新创业服务外包大赛,在项目中大量使用到了合合信息所提供的api进行相关功能实现,所以在这里写一篇博客分享一下我们在项目的实际推进中关于TextIn.com API使用心得

我们的产品是一款面向公司管理的REP微信小程序,由于需要覆盖大部分的企业办公需求,我们使用到了大量的API,进行功能实现,这里列举四个使用的比较多的API功能进行讲解和展示

一、通用文字识别

首先是最常用的通用文字识别功能,即识别图片上的的文字并进行输出,实现代码如下:

import requests
import json def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read() class CommonOcr(object):
def __init__(self, img_path):
self._app_id = '******************************'
self._secret_code = '********************************'
self._img_path = img_path def recognize(self):
url = 'https://api.textin.com/ai/service/v2/recognize'
head = {}
texts = []
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
response = requests.post(url, data=image, headers=head)
results = json.loads(response.text)
for line in results['result']['lines']:
texts.append(line['text'])
return texts
except Exception as e:
return str(e) if __name__ == "__main__":
response = CommonOcr(r'img.png')
print(response.recognize())

实现效果如下:

二、车牌号识别

在公司管理中,公司的汽车管理是企业业务的常见组成部分,所以我们在小程序中加入公车管理的功能,其中汽车的登记任务就是通过车牌识别的api进行实现的,实现代码如下:

import requests
import json def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read() class CommonOcr(object):
def __init__(self, img_path):
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
# 示例代码中 x-ti-app-id 非真实数据
self._app_id = '****************************'
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
# 示例代码中 x-ti-secret-code 非真实数据
self._secret_code = '*******************************'
self._img_path = img_path def recognize(self):
# 车牌号识别
url = 'https://api.textin.com/robot/v1.0/api/plate_number'
head = {}
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
result = requests.post(url, data=image, headers=head)
return result.text
except Exception as e:
return e if __name__ == "__main__":
response = CommonOcr(r'img_1.png')
print(response.recognize())

实现效果如下:

三、票据识别

企业业务流程中,票据识别是一个很重要的事务,票据识别的效率很大程度上会影响到整体报销流程的效率,所以一个精确高效的票据识别功能是不可或缺的。我们的实现代码如下:

import requests
import json def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read() class CommonOcr(object):
def __init__(self, img_path):
self._app_id = '**********************************'
self._secret_code = '***********************************'
self._img_path = img_path def recognize(self):
url = 'https://api.textin.com/robot/v1.0/api/bills_crop'
head = {}
result_formatted = []
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
response = requests.post(url, data=image, headers=head)
results = json.loads(response.text)
if "result" in results and "object_list" in results["result"]:
for item in results["result"]["object_list"]:
if "item_list" in item:
for field in item["item_list"]:
result_formatted.append(field["key"] + ": " + field["value"])
result_formatted.append("") # Adds an empty line
return "\n".join(result_formatted)
except Exception as e:
return str(e) if __name__ == "__main__":
response = CommonOcr(r'img_2.png')
print(response.recognize())

实现效果如下:

四、名片识别

名片是员工管理的重要依据,我们的小程序也通过名片识别实现了公司员工的登记和管理,名片识别代码如下:

import requests
import json def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read() class CommonOcr(object):
def __init__(self, img_path):
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
# 示例代码中 x-ti-app-id 非真实数据
self._app_id = '***************************'
# 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
# 示例代码中 x-ti-secret-code 非真实数据
self._secret_code = '***************************'
self._img_path = img_path def recognize(self):
# 名片识别
url = 'https://api.textin.com/robot/v1.0/api/business_card'
head = {}
try:
image = get_file_content(self._img_path)
head['x-ti-app-id'] = self._app_id
head['x-ti-secret-code'] = self._secret_code
result = requests.post(url, data=image, headers=head)
return result.text
except Exception as e:
return e if __name__ == "__main__":
response = CommonOcr(r'img_3.png')
print(response.recognize())

实现效果如下:

除上面的api外,合合信息还有很多丰富的面向办公需求的api端口,并且有免费额度,推荐大家进行使用。

TextIn.com API使用心得的更多相关文章

  1. 百度api使用心得体会

    最近项目中在使用百度地图api,对于其中的一些有用的点做一些归纳整理,如有不对的地方,欢迎各位大神纠正指出. 一定要学会查找百度地图api提供的类参考网站:http://lbsyun.baidu.co ...

  2. asp.net mvc短信接口调用——阿里大于API开发心得

    互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...

  3. Android Camera Api的心得

    (一) 前言最近看Camera的api,觉得写的真的不错.现在翻译过来,给大家分享分享,译文可能不太好,大家将就着看哈. (二) 正文1. CameraCamera是Android framework ...

  4. 乐卡上海网点地图制作心得 | 百度地图API使用心得

    前言 事情的起因是我的爱人喜欢收集一些美丽的乐卡(明信片的一种,正面是美丽壮阔的风景照).作为一个坚实的后盾自然要支持她!于是我经常借着午休穿梭在大街小巷,凭借乐卡官方提供的乐卡网点地址进行寻找并取卡 ...

  5. 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]

    异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...

  6. cornerstoneTools 作用,用法,api使用心得

    一.cornerstoneTools的用途 1.作用可以响应一些事件,例如鼠标按下的事件,鼠标滚轮的事件或按键或触摸事件 2.可以对视口进行缩放平移 3.可以在图像上绘制图形 4.可以在图像上绘制文本 ...

  7. 微信支付JS API使用心得

    微信的接口真的很坑爹,只返回成功或失败,从来不会告诉你为什么失败.这个微信支付的js接口也是调了一个下午才成功,期间踩了不少坑,在这里总结一下,而且把支付接口封装成了一个js文件,这样以后调用就很方便 ...

  8. H5的Web Audio Api

    概述 研究Web Audio Api的主要原因是:工作中需要在ios中实现声音的淡出效果,主要是通过setInterval来改audio标签的volume属性实现的,但是ios上面volume属性是只 ...

  9. 用laravel dingo api插件库创建api的一些心得笔记

    用laravel创建api是很多大型项目正在使用的方法,一般他们都是用dingo api插件库来开发自己的api.以下是ytkah用dingo api的一些心得,有需要的朋友可以关注一下 1.安装 因 ...

  10. 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core

    百度地图和高德地图坐标系的互相转换   GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...

随机推荐

  1. OPPO 自研大规模知识图谱及其在数智工程中的应用

    导读:OPPO 知识图谱是 OPPO 数智工程系统小布助手团队主导.多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答.电商搜索等场景. 本文主 ...

  2. opencv库图像基础2-python

    opencv库图像基础2-python 图像的简单变换 先导入库 import cv2 import matplotlib.pyplot as plt import numpy as np 1.图像的 ...

  3. kafka的数据同步原理ISR、ACK、LEO、HW

    1.数据可靠性保证,数据同步 为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到 producer 发送的数据后,都需要向 produ ...

  4. 牛客“迎新春,过大年”多校程序设计竞赛A题

    题目描述: 这里有个小trick 当时也看到数据范围的问题了 \(n是1e6 \quad \sum_{i=1}^na[i]<=5e7\) 我们考虑不同的数\(1 \quad 2 \quad .. ...

  5. prometheus 监控系统

    一. 安装docker环境 二. 安装prometheus 2.1 编辑配置文件 2.2 编辑docker-compose 三. grafana 展示 四 添加监控节点 五. 监控 java进程 六. ...

  6. Spring状态机(FSM),让订单状态流转如丝般顺滑

    引言 在复杂的应用程序设计中,尤其是那些涉及多个状态变迁和业务流程控制的场景,有限状态机(Finite State Machine, FSM)是一种强大而有效的建模工具.Spring框架为此提供了Sp ...

  7. Windows 安装 Rust 并设置镜像加速

    目录 下载rustup-init.exe(Rust安装工具) 使用镜像加速rustup安装 安装Rust 安装标准库源码 使用镜像加速cargo包下载 安装结果确认 更新.卸载和文档查看 参考文档 下 ...

  8. 基于R语言的raster包读取遥感影像

      本文介绍基于R语言中的raster包,读取单张或批量读取多张栅格图像,并对栅格图像数据加以基本处理的方法. 1 包的安装与导入   首先,我们需要配置好对应的R语言包:前面也提到,我们这里选择基于 ...

  9. MyBatisPlus常用功能总结!(附项目示例)

    这篇主要是总结一下MybatisPlus一些常用的场景,目前主要有以下几点: 完整的CURD操作示例 逻辑删除功能示例 自动填充功能示例 分页插件功能示例 有关一些其它重要的功能比如 条件生成器.主键 ...

  10. Mysql中数据类型括号中的数字代表的含义

    相信大家不管是看别人的代码,还是自己的代码总会在定义表的数据类型时,会需要在数据类型后面加一个括号,里面写一个参数,例如int(3),smallint(5),char(5)等,但是括号里面的数字到底是 ...