找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

搜索
查看: 97|回复: 0

[分享] 不用安装微信也能用的调用微信OCR软件

[复制链接]
  • TA的每日心情
    开心
    2024-9-4 11:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    28

    积分

    新手上路

    积分
    28
    来自: 中国湖北武汉
    发表于 2024-9-4 11:36:06 | 显示全部楼层 |阅读模式 来自: 中国湖北武汉
    非业余 - aardio 编程语言 - 非官方问答社区
    限时85折!暑假期间,用aardio培训班充实自己!https://mp.weixin.qq.com/s/c4Z8sZPOiMh_OTG2VPOJmA
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    本帖最后由 红色森林 于 2024-9-4 13:12 编辑

    微信自带的OCR功能,快捷准确。很好用。有大佬搞了一个py库实现了对微信ocr的调用。aardio作者一鹤老师做了一个aar的相关库,使得调用微信ocr非常方便。通过自己带的库和例子就能生成一个cor文字识别软件。

    不过,我在使用过程中,遇到有时能用,有时又不能用的情况,因为我电脑上安装了多个版本的微信,有时装一个新的版本,ocr就不能用了。有时换一个版本,又能用了。看到群里有人说一次都没有成功。感觉这里面一个是路径问题,一个是32位和64位问题。因为以前微信是32位,好像3.9后有64位也有32位。

    现在,通过相关资料找到调用的文件,把它们提取出来,放到软件目录下调用,这样就不再依赖不同版本的微信,就算电脑上没有安装微信,也能用了。实现了


    其实,作者的库是写很好的,可以指定路径,不指定才去寻找微信安装路径。当时遇到问题我也曾试着指定路径,但没有成功。因为我电脑上微信安装有多个路径。

    下面的代码:
    [AAuto] 纯文本查看 复制代码
    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="调用微信 OCR";left=-2;top=-2;right=323;bottom=382;topmost=1)
    winform.add(
    btnOcr={cls="button";text="提取图像文本";left=150;top=341;right=308;bottom=376;db=1;dl=1;dr=1;z=2};
    edit={cls="edit";left=9;top=6;right=314;bottom=335;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1}
    )
    /*}}*/
    
    /*
    仅供技术研究测试,勿作任何不当用途
    */
    import process.wxOcr; 
    
    var weChartPath="/wxocr/WeChat.exe";
    var ocrPath="/wxocr/WeChatOCR.exe";
    
    //创建 OCR 对象
    var ocr = process.wxOcr(weChartPath,ocrPath); 
    if(!ocr) error("系统未安装微信");
    
    //按钮事件
    winform.btnOcr.oncommand = function(id,event){
            
            //屏幕选区
            import mouse.screenArea;
            var screenArea = mouse.screenArea();
            
            //保存屏幕选区
            screenArea.onSelectionChanged = function(rc){
                    
                    import gdip.snap;
                    var bmp = gdip.snap(screenArea.hwnd,rc.xywh());
                    bmp.save("/~~~~ocr.jpg",80);
                    owner.close();
            }
            screenArea.doModal();
    
            //识别文本
            ocr.sendRquest("/~~~~ocr.jpg",
                    function(mmojoOcrResponse){ 
                            
                            //识别结果
                            var singleResult = mmojoOcrResponse.ocrResult.singleResult;
                            
                            //逐行输出到文本框
                            for(k,ret in singleResult){
                                     winform.edit.print(ret.singleStrUtf8)
                            }  
                    }
            )        
    }
    
    //显示窗口
    winform.show();
    win.loopMessage();
    


    代码没什么特别的,就是指定路径。开始路径没带exe,一直没成功。后面带上才成功了。

    生成后,把提取的wxocr目录复制到exe同目录就可以运行了。

    wxocr目录中,两个dll原本是在微信程序里面的,所以要找微信路径。但不调用微信。所以我这个目录中那个wechat.exe,就是一个空文件,写个名字而已。

    另外几个文件,就是ocr要调用的模型。估计是用mojo训练的,所以要两那个dll。

    你也可以从你自己电脑上提取正常使用的那几个文件替换。

    上传说附件过大。
    https://www.123pan.com/s/NtTCTd-lY79A?提取码:Euae
    非业余 - aardio 编程语言 - 非官方问答社区
    限时85折!暑假期间,用aardio培训班充实自己!https://mp.weixin.qq.com/s/c4Z8sZPOiMh_OTG2VPOJmA
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区

    GMT+8, 2024-9-17 03:19 , Processed in 0.123814 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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