按键精灵 百度文字识别(百度ocr)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_KEY
	API_KEY = ""
	SECRET_KEY = ""
	// 获取access_token
	Set 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, False
	tokenPost.Send 
	If tokenPost.readyState = 4 Then 
		TracePrint tokenPost.responsetext
		Set obj = json.Decode(tokenPost.responsetext)
		TracePrint obj("access_token")
		access_token = obj("access_token")
	End If
	tokenPost.abort
	Set 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 xml
	Dim root
	Dim fs
	Dim objStream
	Dim objXMLDoc
	Dim Base64
	Set 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 // 打开objStream
		objStream.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).Text
			Base64 = Replace(Base64, vbLf, "") // 去除换行(vbLf相当于chr(10))(可以不去除)
			Base64 = Replace(Base64,"+","%2B") // 替换加号(文档未说明,但需要此操作,而且不要进行urlencode)
		Else
			Base64 = ""
		End If
		Set xml = Nothing
		Set objStream = Nothing
	Else // 文件不存在
		Base64 = ""
	End If
	Set fs = Nothing
	Set objXMLDoc = Nothing
	ImagesToBase64 = 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 = 0
    	For i = 0 To UBound(wordsArray)
    		//读取数组中的目标值
    		TracePrint wordsArray(i)("words")
    		If wordsArray(i)("words") = "目标值" Then 
    			full_contribution_true = 1
    			Exit for
    		End If
    	Next
	End If
	xPost.abort
	Set xPost = Nothing
    Delay 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", False
    xPost.setRequestHeader "apikey", mykey
    xPost.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    lan = "language=chs"
    iso = "&isOverlayRequired=false"
    b644 = ImagesToBase64("F:\按键精灵\按键精灵商业版\数字识别截图.bmp")
    b64 = "&base64Image=data:image/bmp;base64,"& b644
    isc = "&iscreatesearchablepdf=false"
    iss = "&issearchablepdfhidetextlayer=false"
    date1 = lan &iso & b64 & isc & iss 
    xPost.Send (date1)
    If xPost.readyState=4 Then
        TracePrint xPost.responsetext
    End If
    xPost.abort
    Set xPost = Nothing
    Delay 1000
End Function

本文作者:九重!
本文链接:https://blog.csdn.net/weixin_43798572/article/details/124075686
关于博主:评论和私信会在第一时间回复。或者直接私信我。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【点赞】【收藏】一下。您的鼓励是博主的最大动力!

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 按键精灵百度文字识别(QMlE)是一款优秀的OCR(光学字符识别)工具,可以将图片中的文字自动识别并转化为可编辑的文本格式。QMlE集成了百度文字识别的API,使得文字识别更加简单高效。 使用QMlE进行文字识别非常方便,只需简单的几步操作即可完成。首先,我们需要打开一个图片文件或者截图,然后在QMlE中选择"文字识别"功能。接下来,QMlE会自动将图片上传至百度文字识别服务器进行处理。稍等片刻,识别结果就会出现在QMlE的界面上。 QMlE的文字识别精准度较高,可以识别多种语言、多种字体类型的文字。此外,QMlE还具备批量识别、自动识别、手动识别等功能,更加方便用户进行文字识别操作。 QMlE在很多场景下都能发挥作用,比如处理电子书、浏览网页时的截图文字识别,或者复制纸质资料中的文字等。它不仅可以提高工作效率,还可以减少人工输入的错误。 总之,按键精灵百度文字识别(QMlE)是一款功能强大、使用方便的OCR工具,可以帮助我们快速准确地将图片中的文字转化为可编辑的文本格式,具有广泛的应用价值。 ### 回答2: 按键精灵百度文字识别.qmle是一款文字识别工具,由按键精灵百度合作开发而成。它能够通过识别图像中的文字,将文字转化为计算机可以识别和处理的文本格式。具体来说,按键精灵百度文字识别.qmle可通过引入百度文字识别API,实现对图像中的文字进行精准识别和提取。 这款工具具有许多优点。首先,它能够对图片中的文字进行高效准确的识别,大幅提高文字识别的效率和准确性。其次,该工具支持批量处理,用户可以一次性上传多张图片进行文字的批量识别,节省了大量的时间和精力。此外,按键精灵百度文字识别.qmle还能够对识别结果进行智能排版,提高了文字识别的可读性和整体美观度。 使用按键精灵百度文字识别.qmle,用户可以将图片中的文字快速转化为可编辑的文本形式,方便进行后续的文字处理和编辑。这对于需要对大量文档进行转录的用户来说尤为有用。此外,通过与按键精灵其他模块的配合,用户还能够自动化地完成文字识别和文本处理的操作,进一步提高工作效率。 总之,按键精灵百度文字识别.qmle为用户提供了快速准确的文字识别服务,帮助用户高效地处理图片中的文字信息,并提供了多种功能和工具来满足用户的不同需求。无论是日常办公还是个人爱好,它都能为用户带来便利和效益。 ### 回答3: 按键精灵百度文字识别.qmle是一款使用百度文字识别技术的工具。百度文字识别是一种基于人工智能的文本识别技术,可以将图片中的文字转化成可编辑的文字文件。 按键精灵百度文字识别.qmle具有简单易用的特点。用户只需将需要识别的图片通过按键精灵.qmle工具导入,然后点击识别按钮,即可自动将图片中的文字提取出来,并生成相应的文字文件。 这款工具可以帮助用户提高文字识别的效率。通过将图片中的文字转化成文字文件,用户可以方便地编辑、复制或搜索其中的内容。这在处理大量图文混排的文档、识别图片中的二维码或条形码等场景下非常实用。 按键精灵百度文字识别.qmle与百度文字识别技术的结合,使得文字识别更加智能化。百度文字识别技术不仅支持中文文字的识别,还可以识别英文、日文、韩文等多种语言的文字。此外,它还可以识别不同字体、大小、倾斜等情况下的文字,并且对于印刷体、手写体等文字都有较高的识别准确率。 综上所述,按键精灵百度文字识别.qmle是一款功能强大、简单易用的文字识别工具,通过结合百度文字识别技术,用户可以高效地将图片中的文字提取出来,大大提高工作和学习效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九重!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值