先上代码

import os
import json
import time
from wechat_ocr.ocr_manager import OcrManager, OCR_MAX_TASK_ID


wechat_ocr_dir = r"C:\Users\16493\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe"
wechat_dir = r"C:\Program Files\Tencent\WeChat\[3.9.12.17]"

img_path = input("请输入图片路径:")
file_dir = os.path.dirname(os.path.abspath(img_path)) + "\\"+ os.path.basename(img_path)

def ocr_result_callback(img_path:str, results:dict):
    result_file = file_dir + ".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 main():
    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()
    # 开始识别图片
    ocr_manager.DoOCRTask(img_path)
    time.sleep(1)
    while ocr_manager.m_task_id.qsize() != OCR_MAX_TASK_ID:
        pass
    # 识别输出结果
    ocr_manager.KillWeChatOCR()
    

if __name__ == "__main__":
    main()

原理

基于微信本地OCR引擎(由最新版微信自动安装)。通过Python对其官方调用逻辑进行完整翻译和封装,使开发者可以用简单的API调用其强大的OCR功能。

依赖环境

  • Windows系统,已安装最新版微信。
  • Python环境,推荐使用最新版本。

使用方法

安装python库

pip install wechat-ocr

设置路径

利用Python调用微信ORC实现图片识别插图

找到wechat.exe的上级目录文件夹。

我这里的是:C:\Program Files\Tencent\WeChat[3.9.12.17]

找到wechatocr.exe

利用Python调用微信ORC实现图片识别插图1

直接右键复制链接,"C:\Users\16493\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe"

因此,可以设置

wechat_ocr_dir = r"C:\Users\16493\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WeChatOCR\7079\extracted\WeChatOCR.exe"

wechat_dir = r"C:\Program Files\Tencent\WeChat\[3.9.12.17]"

而后运行后输入图片地址,即可识别,并在图片同级目录下,生成图片.json文件,json文件中不仅有识别到的文本内容,也有图片文本的location信息,可以用于进一步开发和使用。

Demo

以博客首页为例:

利用Python调用微信ORC实现图片识别插图2

输入地址后:

利用Python调用微信ORC实现图片识别插图3

结果:

利用Python调用微信ORC实现图片识别插图4