[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 请求大神 修改用PowerShell调用百度OCR的代码

这几天,放假,就一直研究百度OCR的代码,到今天最后一天了,还是没有搞定,就是修改某大神的VBS代码,原贴在这里
http://www.bathome.net/redirect. ... 8390&pid=219792

后来在百度搜索了看到有人用psl,也可以使用百度的OCR,就照葫芦画瓢,写了一下,但是死活不能运行,有高手能指点一下吗?万分感谢,自己模仿的代码如下:
我使用postman提交下面的相关参数,可以正常识别的,图片的格式是base64的,不包含头,不能有换行,我不知道怎么用函数转,就直接用在线的转码工具转的
附上百度OCR的说明文档:https://cloud.baidu.com/doc/OCR/ ... 2.E8.AF.B4.E6.98.8E
  1. $qaccess_token='24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329'
  2. $language='language_type=CHN_ENG'
  3. $probability='probability=true'
  4. $detect_direction='detect_direction=true'
  5. $image='iVBORw0KGgoAAAANSUhEUgAAAUMAAABACAYAAACA0BUdAAAG9ElEQVR4nO3dvVbqShiH8ZdzLWDh8griFYDNqWx3h6U0dpZ2NlhCZ2tlI1yBXIHLQriX7GRAMhMmk5APmGQ/v7Vy1sINgQmTP5PJm5xeGBEA+Mf9d+4PAAA+IAwBQAh**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'
  6. $response = Invoke-RestMethod https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic -Method Post -Body @{
  7. $qaccess_token
  8. $image
  9. $language
  10. $probability
  11. $detect_direction
  12. }
  13. $response
复制代码

回复 20# 5i365


    如果我的vbs版你可以用的话就是你自己的问题了,照着我的vbs改改,直接用人家写好的ps也行

TOP

回复 22# 5i365

支持ps2.0,没赞助没动力呀
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 21# zaqmlp

你好,大神实在厉害,稳稳地把base64编码和输出乱码都解决了,不知道在win7自带的ps2.0中能否使用,如果能用那就太棒了,明天在另一台电脑试一下,我测试过使用Invoke-RestMethod在win7是不行的,

另外,请问大神能把获取Token的代码也顺便加进去吗?下面是VBS的代码, 非常感谢

Function GetToken(ByVal APIKey,ByVal SecretKey)
    Const GET_TOKEN_URL = "https://aip.baidubce.com/oauth/2.0/token"
    On Error Resume Next
    GetToken = _
    Split( _
    HTTP_POST( _
    GET_TOKEN_URL, _
    "grant_type=client_credentials" & _
    "&client_id="&APIKey & _
    "&client_secret=" & SecretKey _
    ) _
    ,"""")(13)
    If Err.Number <> 0 Then GetToken = "ERROR"
    On Error Goto 0
End Function

TOP

  1. $info='互助互利,支付宝扫码头像,感谢赞助';
  2. Add-Type -AssemblyName System.Web;
  3. $url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic';
  4. $pic='C:\Users\Administrator\Desktop\test.jpg';
  5. $imagedata=[Web.HttpUtility]::UrlEncode([Convert]::ToBase64String([IO.File]::ReadAllBytes($pic)));
  6. $poststr=@(
  7.     'access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329',
  8.     $('image='+$imagedata),
  9.     'language_type=CHN_ENG',
  10.     'detect_direction=false',
  11.     'detect_language=false',
  12.     'probability=false'
  13. ) -join '&';
  14. $web=New-Object System.Net.WebClient;
  15. $web.Headers.Add('Content-Type', 'application/x-www-form-urlencoded');
  16. [byte[]]$postdata=[Text.Encoding]::UTF8.GetBytes($poststr);
  17. [byte[]]$responsedata=$web.UploadData($url, 'POST', $postdata);
  18. [Text.Encoding]::UTF8.GetString($responsedata);
复制代码
1

评分人数

提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 16# 老刘1号

你好,我换了,Set r = CreateObject("MSXML2.XMLHTTP")

直接报错

TOP

回复 16# 老刘1号

在PS中怎么改呢,用哪个命令?能贴一下代码吗?感谢

TOP

回复 16# 老刘1号

谢谢! 等会再试,现正在写鼠标右键。功能:点击图片\右键识别\把识别的文本发送到剪切板\随意粘贴到任意文本中。
再整合到 右键属性中。
以后再写 C#版的 exe小程序。

TOP

回复 16# 老刘1号

感谢提醒,我试试,多谢

TOP

本帖最后由 老刘1号 于 2019-5-7 20:01 编辑

回复 8# xczxczxcz


    可以用MSXML2.XMLHTTP这个com的.ResponseText方法,就不用纠结编码问题了
我vbs中就是这么搞的

另外lz说的那个中文乱码也一样,把HttpRequest.5.1那个换成MSXML2.XMLHTTP就行
1

评分人数

TOP

回复 14# xczxczxcz

你好,刚看到回复,能发一下你用接口在PS中调用百度的代码吗,我对调用接口基本不懂,这正好是个学习的机会,万分感谢!

TOP

pwowershell 直接用百度OCR 接口。需下载百度 C# 的SDK(可集成到系统里)。PS中调用。
1

评分人数

TOP

偶放弃用这个了,直接用百度接口。立马识别中文。简单得不得了。

TOP

回复 11# 5i365


    楼顶的的很多是多余的,图片位置|image|body|headers|invoke|获取结果。共6句即可。image可用命令获取并赋值。token部分可用iwr获取返回值。

TOP

本帖最后由 5i365 于 2019-5-7 11:32 编辑

回复 8# xczxczxcz

朋友,咱俩同病相怜,我也是这个情况,PS和VBS都这样,建议win10就用PS,如果是win7还是VBS好一些,代码也短多了

TOP

返回列表