目录

  • 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文字识别相关推荐

  1. 按键精灵电脑版对接百度ai,告别字库(文字识别篇)

    很简单,根据百度ai接口api文档,用post或者get请求,封装参数请求响应即可.哈哈,当然不可能就这样结束了本篇博客了.本篇先讲文字识别,喜欢的朋友可以关注下,后续会继续写图片识别等所有ai对接方 ...

  2. 【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手

    软件无需安装,双击打开就能用,适用于Windows 7以上平台: 具有截图文字识别,拖拽文字识别,打开文字识别,翻译文字等功能 可用于图片和PDF中文字的识别提取中,电脑一切看得见的文件都可以识别,支 ...

  3. android自动识别文字,Android文字识别tesseract ocr -训练样本库 识别字库

    目录 安装tesseract ocr引擎和jTessBoxEditor 安装jTessBoxEditor 开始制作box 准备好训练的图片 将图片转为tif格式的样本图片 合并样本图片 修改box文件 ...

  4. Android 使用百度飞桨做OCR的本地识别

    在项目过程中,由于调用接口识别比较费时间,后来采用了飞桨开源模型来做本地的OCR识别,它的SDK使用完全免费,无有效期限制. 我们这里使用的是OCRV3的包,只是在扫描过程中使用了下OCR的识别 按d ...

  5. 按键精灵使用百度文字识别(百度ocr)教程

    按键精灵通过实践,也可以接入百度的OCR,百度OCR免费额度为,每日50000次普通调用,对于日常应用已经足够,返回识别内容时间在1s以内(免费版有一秒内请求次数限制,不充钱也无法达到更短的时间).百 ...

  6. 保姆级——Java调用百度OCR实现身份证识别

    具体实现功能和参数,可以看百度的API开发文档:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck 其实我是看不懂API文档的 文章中的请求参数 调用百度的OCR需要做 ...

  7. 阿里云 OCR 图片文字识别接口使用案例(java)

    阿里云 OCR 图片文字识别接口使用案例(java) 阿里云官方接口文档 前期需要完成 购买阿里云服务 购买服务 可以购买测试服务.每个阿里云用户可以购买1次免费的500次接口请求进行测试 购买完成之 ...

  8. 一篇文章搞定百度OCR图片文字识别API

    一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104 转载于:https://www.cnblogs.com/chongdongxia ...

  9. 百度文字识别 百度OCR接口申请

    1.百度文字识别 百度OCR 的接口申请 https://blog.csdn.net/biao197/article/details/102907492

最新文章

  1. 模拟进程管理小结,编码规范的重要性
  2. SAP PM 初级系列10 - 维护通知单相关的配置
  3. 基于mysql实现的网站_[源码和文档分享]基于JavaScript和MySQL的文化平台网站的设计与实现...
  4. kafka消费端慢慢延迟(网络带宽不足)
  5. mysql ICP优化的原理
  6. 新浪微博授权认证过程
  7. 特斯拉工程师当UP主评测自动驾驶,结果被公司开除
  8. T研究:国内云BPM市场规模尚小,预计2018年仅为3.29亿元
  9. Java新职篇:多态性、封装性与继承性相互作用是什么?
  10. android之sqlite操作
  11. 网易服务器维护,网易:方便玩家 各大区服务器维护详细时间表列
  12. 入门 HTML JavaScript Jquery学习回顾 有小案例
  13. ffmpeg--异常打印
  14. SQL server和SSMS的安装及使用说明
  15. 古董万年历升级WiFi授时 STM32+ESP8266
  16. python分块处理功能_Python自然语言处理学习笔记之信息提取步骤分块(chunking)...
  17. linux通讯录软件带头像,Ubuntu联系人应用已支持增强的头像功能
  18. SpringCloud_Dubbo_JZZ_MBY
  19. 修改gh-ost源码实现两表在线高速复制
  20. 2000-2020上市公司全要素生产率OLS和固定效应方法含原始数据和Stata代码

热门文章

  1. Linux 实现ssh免密登录--设置后不生效的处理办法
  2. MODBUS调试工具(modscan32)使用说明
  3. goland使用fabric-go-sdk连接虚拟机fabric网络(保姆级教学)
  4. 判断某个数是否满足一定条件
  5. 刘慈欣 计算机工程师,刘慈欣为什么这么厉害 科幻作家刘慈欣作品有哪些
  6. python从DataFrame中删除列
  7. 关于ios代码混淆的一些注意事项
  8. 计算机专业及软件开发推荐书籍
  9. 网络抓包工具 翻译帮助文档 详解教程
  10. Spyder: You have missing dependencies! #Mandatory: rtree>=0.9.7