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

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

[复制链接]
发表于 2019-5-7 19:54:35 | 显示全部楼层
本帖最后由 老刘1号 于 2019-5-7 20:01 编辑

回复 8# xczxczxcz


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

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

评分

参与人数 1技术 +1 收起 理由
xczxczxcz + 1 ok

查看全部评分

 楼主| 发表于 2019-5-7 20:40:41 | 显示全部楼层
回复 16# 老刘1号

感谢提醒,我试试,多谢
发表于 2019-5-7 20:41:11 | 显示全部楼层
回复 16# 老刘1号

谢谢! 等会再试,现正在写鼠标右键。功能:点击图片\右键识别\把识别的文本发送到剪切板\随意粘贴到任意文本中。
再整合到 右键属性中。
以后再写 C#版的 exe小程序。
 楼主| 发表于 2019-5-7 20:41:45 | 显示全部楼层
回复 16# 老刘1号

在PS中怎么改呢,用哪个命令?能贴一下代码吗?感谢
 楼主| 发表于 2019-5-7 20:55:26 | 显示全部楼层
回复 16# 老刘1号

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

直接报错
发表于 2019-5-7 21:53:03 | 显示全部楼层
  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技术 +1 收起 理由
老刘1号 + 1 .net库,酷

查看全部评分

 楼主| 发表于 2019-5-7 22:29:14 | 显示全部楼层
回复 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
发表于 2019-5-7 22:31:58 | 显示全部楼层
回复 22# 5i365

支持ps2.0,没赞助没动力呀
发表于 2019-5-7 23:04:40 | 显示全部楼层
回复 20# 5i365


    如果我的vbs版你可以用的话就是你自己的问题了,照着我的vbs改改,直接用人家写好的ps也行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:44 , Processed in 0.019032 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表