按键精灵 百度文字识别(百度ocr)OCRSpace文字识别
目录
- 1. 申请百度OCR服务
- 1.1. 百度OCR登录
- 1.2 创建新应用
- 1.3 免费领取次数
- 1.3 查看是否创建成功
- 2. 按键精灵运用百度OCR接口
- 2.1 通用文字识别(高精度版)文档
- 2.1.1 接口描述
- 2.1.2 请求说明
- 2.1.3 获取access_token
- 2.2按键精灵代码实现获取access_token
- 2.3. header 和 body参数
- 2.3.1 header 参数
- 2.3.2 body 参数
- 2.3.3 image 参数
- 2.4 返回参数
- 2.5 按键精灵代码实现图片base64转换
- 2.6 按键精灵代码实现获取word_result
- 2.7 一个小游戏截图效果图
- 2.8 关键代码整合:
- 3 OCRSpace文字识别
- 3.1 OCRSpace关键代码
1. 申请百度OCR服务
1.1. 百度OCR登录
进入 百度智能云-登录 ,登入百度账号后,在产品应用里面选择文字识别服务。
点击进入后:
1.2 创建新应用
应用的名称自己填
应用归属:这里我选择是的个人。应用描述自己填,
1.3 免费领取次数
点击免费领取次数,进入后全选
在没有认证的情况下,免费次数就通用文字识别(高精度版)每个月200次。若是进行实名认证,每个月1000次。
实名认证(根据需要自行决定)
1.3 查看是否创建成功
点击应用列表自己查看
在应用列表中API KEY和Secret Key 之后会用到可以先记录下来。
2. 按键精灵运用百度OCR接口
2.1 通用文字识别(高精度版)文档
2.1.1 接口描述
在通用文字识别的基础上,提供更高精度的识别服务,支持更多语种识别(丹麦语、荷兰语、马来语、瑞典语、印尼语、波兰语、罗马尼亚语、土耳其语、希腊语、匈牙利语、泰语、越语、阿拉伯语、印地语及部分中国少数民族语言),并将字库从1w+扩展到2w+,能识别所有常用字和大部分生僻字。
2.1.2 请求说明
这里看到在使用前需要先获得access_token 值。
2.1.3 获取access_token
简单来说就是:就是向https://aip.baidubce.com/oauth/2.0/token发请求其中带上grant_type、client_id、client_secret三个参数值就行。
2.2按键精灵代码实现获取access_token
Sub 获取access_token// 填写自己的API_KEY 和 SECRET_KEYAPI_KEY = ""SECRET_KEY = ""// 获取access_tokenSet tokenPost = CreateObject("Msxml2.ServerXMLHTTP.3.0")tokenPost.Open "Post", "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" & API_KEY & "&client_secret=" & SECRET_KEY, FalsetokenPost.Send If tokenPost.readyState = 4 Then TracePrint tokenPost.responsetextSet obj = json.Decode(tokenPost.responsetext)TracePrint obj("access_token")access_token = obj("access_token")End IftokenPost.abortSet tokenPost = Nothing
End Sub
这里我们就获取到了 access_token ,接下来我们就开始解决header和body的参数问题了
2.3. header 和 body参数
2.3.1 header 参数
文档的部分内容如下:
大概就Header要发一个Content-Type,其值按照要求写就行了。
2.3.2 body 参数
这有三选一的参数,一个是image和url、PDF的参数形式。这里因为图片是保存在本地,将选用的是image的参数。后边详细在详细分析下image参数的格式。其他参数都是非必选的,就是自行看文档了。
在文档中还有一些代码的样例。不幸的是就按键精灵语言
2.3.3 image 参数
首先可以看到,图片需要进行base64编码,然后进行urlencode。两者区别具体可以看
这里解释下:在按键精灵中用 Base64 转变后,你只要把其中的 “+” 号替换为 %2d 就行了。
2.4 返回参数
这里就根据需求看那些返回值比较重要,其中word_result 无疑是十分重要,返回的是识别的结果,并保存在数组中。现在大致了解了参数设置和返回参数的问题。接下就实现代码了
2.5 按键精灵代码实现图片base64转换
代码主要参考网上图片转base64代码
// 图片转Base64
Function ImagesToBase64(FilePath)Dim xmlDim rootDim fsDim objStreamDim objXMLDocDim Base64Set objXMLDoc = CreateObject("Microsoft.XMLDOM") // 可以访问和操作XML文档objXMLDoc.loadXML "<?xml version='1.0' ?><data></data>" // 导入指定字符串的XML文档Set fs = createObject("Scripting.FileSystemObject") // 可以操作磁盘、文件夹或文本文件If fs.FileExists(FilePath) Then // 判断文件是否存在'用 stream 来读取数据Set objStream = CreateObject("ADODB.Stream") // 可以存取二进制数据或者文本流objStream.Type = 1 // 表示二进制数据objStream.Open // 打开objStreamobjStream.LoadFromFile FilePath // 加载文件数据(下载图片用SaveToFile)objXMLDoc.documentElement.dataType = "bin.base64" // 设置节点数据类型objXMLDoc.documentElement.nodeTypedvalue = objStream.Read // 从objStream读取,再存储到根节点(objXMLDoc.documentElement代表XML文档的根节点)'数据流读取结束.得到了值 objXMLDoc'创建XML文件Set xml = CreateObject("Microsoft.XMLDOM")xml.load objXMLDoc // 导入指定位置的XML文档If xml.ReadyState > 2 Then // 0:未初始化;1:载入;2:载入完成;3:交互;4:完成Set root = xml.getElementsByTagName("data")// 返回指定名字的节点集合(可能会有多个重名节点)Base64 = root(0).TextBase64 = Replace(Base64, vbLf, "") // 去除换行(vbLf相当于chr(10))(可以不去除)Base64 = Replace(Base64,"+","%2B") // 替换加号(文档未说明,但需要此操作,而且不要进行urlencode)ElseBase64 = ""End IfSet xml = NothingSet objStream = NothingElse // 文件不存在Base64 = ""End IfSet fs = NothingSet objXMLDoc = NothingImagesToBase64 = Base64
// //TracePrint ImagesToBase64
End Function
这里需要注意的是
Base64 = Replace(Base64, vbLf, "") // 去除换行(vbLf相当于chr(10))(可以不去除)
Base64 = Replace(Base64,"+","%2B") // 替换加号(文档未说明,但需要此操作,而且不要进行urlencode)
网上部分图片转base64结果有出现换行情况。base64转变后只要把其中的 “+” 号替换为 %2d 就行了,而且不要进行urlencode。
2.6 按键精灵代码实现获取word_result
其中导入了vbsjson.vbs 辅助用于JSON转换,其实也可以不用。自己根据返回的结果进行解析取出关键信息也是ok的
Import "F:\按键精灵\按键精灵商业版\按键精灵2014\plugin\vbsjson.vbs"
Set json = New vbsJson
Function full_contribution()Call Plugin.Pic.PrintScreen(L_position_x,L_position_y,R_position_x,R_position_y, "F:\按键精灵\按键精灵商业版\数字识别截图.bmp")//这里先截了一张图并保持。Set xPost = CreateObject("Msxml2.ServerXMLHTTP.3.0")xPost.Open "Post", "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" & access_token, False// 这里将access_token进行拼接xPost.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"// 这里header中参数CONTENT-TYPE进行设置base64Param = "image=" & ImagesToBase64("F:\按键精灵\按键精灵商业版\数字识别截图.bmp")// 这里image参数进行设置,拼接上处理号的图片数据xPost.Send (base64Param)// 发送If xPost.readyState=4 Then// xPost.readyState成功获取返回值TracePrint xPost.responsetext// 打印下返回值进行查看Set obj = json.Decode(xPost.responsetext)wordsArray = obj("words_result")//这里导入辅助了将str转变json类型的文件full_contribution_true = 0For i = 0 To UBound(wordsArray)//读取数组中的目标值TracePrint wordsArray(i)("words")If wordsArray(i)("words") = "目标值" Then full_contribution_true = 1Exit forEnd IfNextEnd IfxPost.abortSet xPost = NothingDelay 1000
End Function
2.7 一个小游戏截图效果图
一个游戏的截图:
接下来我们就调用下按键精灵程序
可以看到识别的结果还是很准确的
2.8 关键代码整合:
代码整合与vbsJson.vbs
3 OCRSpace文字识别
Free OCR API这是一个免费的OCR的API
可以看到是免费25000次,但是亲测返回速度、识别正常率、成功访问率都不太行。里边的文档也有详细的API的配置,与百度OCR不同的就是不需要获取access_token,只需要在header中发送key就行,同时image的内容也有所不同base64Image=data:image/bmp;base64
3.1 OCRSpace关键代码
Function full_contribution()mykey = ""Set xPost = CreateObject("Msxml2.ServerXMLHTTP.6.0")xPost.Open "Post", "https://api.ocr.space/parse/image", FalsexPost.setRequestHeader "apikey", mykeyxPost.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"lan = "language=chs"iso = "&isOverlayRequired=false"b644 = ImagesToBase64("F:\按键精灵\按键精灵商业版\数字识别截图.bmp")b64 = "&base64Image=data:image/bmp;base64,"& b644isc = "&iscreatesearchablepdf=false"iss = "&issearchablepdfhidetextlayer=false"date1 = lan &iso & b64 & isc & iss xPost.Send (date1)If xPost.readyState=4 ThenTracePrint xPost.responsetextEnd IfxPost.abortSet xPost = NothingDelay 1000
End Function
本文作者:九重!
本文链接:https://blog.csdn.net/weixin_43798572/article/details/124075686
关于博主:评论和私信会在第一时间回复。或者直接私信我。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【点赞】【收藏】一下。您的鼓励是博主的最大动力!
按键精灵 百度文字识别(百度ocr)OCRSpace文字识别相关推荐
- 按键精灵电脑版对接百度ai,告别字库(文字识别篇)
很简单,根据百度ai接口api文档,用post或者get请求,封装参数请求响应即可.哈哈,当然不可能就这样结束了本篇博客了.本篇先讲文字识别,喜欢的朋友可以关注下,后续会继续写图片识别等所有ai对接方 ...
- 【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手
软件无需安装,双击打开就能用,适用于Windows 7以上平台: 具有截图文字识别,拖拽文字识别,打开文字识别,翻译文字等功能 可用于图片和PDF中文字的识别提取中,电脑一切看得见的文件都可以识别,支 ...
- android自动识别文字,Android文字识别tesseract ocr -训练样本库 识别字库
目录 安装tesseract ocr引擎和jTessBoxEditor 安装jTessBoxEditor 开始制作box 准备好训练的图片 将图片转为tif格式的样本图片 合并样本图片 修改box文件 ...
- Android 使用百度飞桨做OCR的本地识别
在项目过程中,由于调用接口识别比较费时间,后来采用了飞桨开源模型来做本地的OCR识别,它的SDK使用完全免费,无有效期限制. 我们这里使用的是OCRV3的包,只是在扫描过程中使用了下OCR的识别 按d ...
- 按键精灵使用百度文字识别(百度ocr)教程
按键精灵通过实践,也可以接入百度的OCR,百度OCR免费额度为,每日50000次普通调用,对于日常应用已经足够,返回识别内容时间在1s以内(免费版有一秒内请求次数限制,不充钱也无法达到更短的时间).百 ...
- 保姆级——Java调用百度OCR实现身份证识别
具体实现功能和参数,可以看百度的API开发文档:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck 其实我是看不懂API文档的 文章中的请求参数 调用百度的OCR需要做 ...
- 阿里云 OCR 图片文字识别接口使用案例(java)
阿里云 OCR 图片文字识别接口使用案例(java) 阿里云官方接口文档 前期需要完成 购买阿里云服务 购买服务 可以购买测试服务.每个阿里云用户可以购买1次免费的500次接口请求进行测试 购买完成之 ...
- 一篇文章搞定百度OCR图片文字识别API
一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104 转载于:https://www.cnblogs.com/chongdongxia ...
- 百度文字识别 百度OCR接口申请
1.百度文字识别 百度OCR 的接口申请 https://blog.csdn.net/biao197/article/details/102907492
最新文章
- 模拟进程管理小结,编码规范的重要性
- SAP PM 初级系列10 - 维护通知单相关的配置
- 基于mysql实现的网站_[源码和文档分享]基于JavaScript和MySQL的文化平台网站的设计与实现...
- kafka消费端慢慢延迟(网络带宽不足)
- mysql ICP优化的原理
- 新浪微博授权认证过程
- 特斯拉工程师当UP主评测自动驾驶,结果被公司开除
- T研究:国内云BPM市场规模尚小,预计2018年仅为3.29亿元
- Java新职篇:多态性、封装性与继承性相互作用是什么?
- android之sqlite操作
- 网易服务器维护,网易:方便玩家 各大区服务器维护详细时间表列
- 入门 HTML JavaScript Jquery学习回顾 有小案例
- ffmpeg--异常打印
- SQL server和SSMS的安装及使用说明
- 古董万年历升级WiFi授时 STM32+ESP8266
- python分块处理功能_Python自然语言处理学习笔记之信息提取步骤分块(chunking)...
- linux通讯录软件带头像,Ubuntu联系人应用已支持增强的头像功能
- SpringCloud_Dubbo_JZZ_MBY
- 修改gh-ost源码实现两表在线高速复制
- 2000-2020上市公司全要素生产率OLS和固定效应方法含原始数据和Stata代码
热门文章
- Linux 实现ssh免密登录--设置后不生效的处理办法
- MODBUS调试工具(modscan32)使用说明
- goland使用fabric-go-sdk连接虚拟机fabric网络(保姆级教学)
- 判断某个数是否满足一定条件
- 刘慈欣 计算机工程师,刘慈欣为什么这么厉害 科幻作家刘慈欣作品有哪些
- python从DataFrame中删除列
- 关于ios代码混淆的一些注意事项
- 计算机专业及软件开发推荐书籍
- 网络抓包工具 翻译帮助文档 详解教程
- Spyder: You have missing dependencies! #Mandatory: rtree>=0.9.7