先上代码
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
设置路径
找到wechat.exe的上级目录文件夹。
我这里的是:C:\Program Files\Tencent\WeChat[3.9.12.17]
找到wechatocr.exe
直接右键复制链接,"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
以博客首页为例:
输入地址后:
结果:
参与讨论