同步操作将从 knighthood/调用微信OCR进行文字识别 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
首先创建虚拟环境
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目录下的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识别的文本。
下一篇文章,我会实现将其中的文本抽出来。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。