1 Star 0 Fork 2

piaoxue88/调用微信OCR进行文字识别

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

配置环境

首先创建虚拟环境

python -m venv venv

然后激活这个虚拟环境

venv\scripts\activate

然后如果你的pip版本不够高,使用这个命令升级一下

python -m pip install --upgrade pip

接下来安装kanadeblisst给我们写好的库

pip install wechat_ocr

具体操作

获取两个文件的路径

接着,你需要知道你电脑WechatOCR.exe的路径和mmmojo.dll的路径,可以使用everything软件进行快速查找。

比如我电脑的WechatOCR.exe路径为:

C:\Users\Lenovo\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe

我电脑的mmmojo.dll路径为:

G:\applicationsoftware\WeChat[3.9.10.19]

可以看到WechatOCR.exe一般在C盘中,而mmmojo.dll一般在你安装的微信具体版本中。

这里注意一下,WechatOCR.exe是需要具体到exe文件的,而mmmojo.dll只需要到微信具体版本即可。

新建两个文件夹

新建两个文件夹,一个是img文件夹,另一个是json文件夹,img文件夹中存放的是你要识别图片文字的图片,json文件夹是后续对图片进行文字ocr识别后,会产生json文件保存在这里。

代码

import os
import json
import time
from wechat_ocr.ocr_manager import OcrManager, OCR_MAX_TASK_ID
# 第一步,获取以下两个内容的路径
# TODO 更改你电脑WeChatOCR.exe路径
wechat_ocr_dir = r"C:\Users\Lenovo\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe"
# TODO 更改你电脑mmmojo.dll所在路径
wechat_dir = r"G:\applicationsoftware\WeChat\[3.9.10.19]"

def ocr_result_callback(img_path: str, results: dict):
    result_file = os.path.join("json", os.path.basename(img_path) + ".json")
    print(f"识别成功,img_path: {img_path}, result_file: {result_file}")
    with open(result_file, 'w', encoding='utf-8') as f:
        f.write(json.dumps(results, ensure_ascii=False, indent=2))

def save_to_json():
    ocr_manager = OcrManager(wechat_dir)
    # 设置WeChatOcr目录
    ocr_manager.SetExePath(wechat_ocr_dir)
    # 设置微信所在路径
    ocr_manager.SetUsrLibDir(wechat_dir)
    # 设置ocr识别结果的回调函数
    ocr_manager.SetOcrResultCallback(ocr_result_callback)
    # 启动ocr服务
    ocr_manager.StartWeChatOCR()
    # TODO 识别图片
    # 如果需要识别多张图片,可以多复制下面这一行代码,指定对应图片即可
    ocr_manager.DoOCRTask(r"img\~~ocr.png")
    # ocr_manager.DoOCRTask(r"img\2.png")
    
    time.sleep(1)
    while ocr_manager.m_task_id.qsize() != OCR_MAX_TASK_ID:
        pass
    # 识别输出结果
    ocr_manager.KillWeChatOCR()


if __name__ == "__main__":
    save_to_json()

操作完以上内容后,只需要复制我的代码,然后修改其中的图片地址即可。即可实现将图片中的文字ocr,将结果保存到json中。

注意,保存到json中是原作者写好的,我们只负责调用即可。

运行结果

代码架构如下: img.png

原始图片如下为img目录下的01.png,图片如下 01.png

运行代码后,其会在json文件夹下面生成对应文件的json文件

{
  "taskId": 1,
  "ocrResult": [
    {
      "text": "然后如果你的pip版本不够高,使用这个命令升级一下",
      "location": {
        "left": 16.858334,
        "top": 16.858334,
        "right": 424.92917,
        "bottom": 35.204166
      },
      "pos": {
        "x": 16.858334,
        "y": 16.858334
      }
    },
    {
      "text": "python -m pip install --upgrade pip",
      "location": {
        "left": 35.204166,
        "top": 84.291664,
        "right": 324.275,
        "bottom": 99.166664
      },
      "pos": {
        "x": 35.204166,
        "y": 84.291664
      }
    }
  ]
}

可以看到,其中"text"对应的内容就是OCR识别的文本。

下一篇文章,我会实现将其中的文本抽出来。

空文件

简介

实现调用微信OCR进行识别 展开 收起
取消

发行版

暂无发行版

贡献者 (1)

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gusong125/wechat_OCR.git
git@gitee.com:gusong125/wechat_OCR.git
gusong125
wechat_OCR
调用微信OCR进行文字识别
master

搜索帮助