Closed kyon777 closed 8 months ago
下面这个方法可以强制过来所有OCR结果。对所有OCR任务生效(比如截图,粘贴,批量图片,文档识别)。
UmiOCR-data\py_src\mission\mission_ocr.py
import re
msnTask
函数,在 return res
之前加上:
for r in res["data"]:
r["text"] = re.sub(r"\D", "", r["text"]) # 删除非数字字符
r["end"] = "" # 可选,强制去除所有换行
注意缩进层级,上述代码必须包含在if res["code"] == 100:
的块内,如下图所示。
未来我会考虑设计一套后处理机制,让用户编写自定义模块(如文本过滤)更容易,并且能在前端UI控制开与关。
大佬,根据你的修改,我要的效果还是没有出来,这个只是 粘贴板是图片的情况下才能筛选, 如果粘贴板本身是text的情况下,他是不能筛选的,
例如我粘贴板本身就是 一段 文字( "一二三四 1234 " ),然后按了下 ORC的重复截图快捷键,筛选出 1234.
最终找到
Umi-OCR_Paddle_v2.1.0\UmiOCR-data\py_src\image_controller 的 screenshot_controller.py
在 getpaste函数下
elif mimeData.hasText(): text = mimeData.text() res = {"type": "text", "text": text}
修改成
elif mimeData.hasText(): text = mimeData.text() textNum =re.sub(r'[^\d\s]', '', text) Newtext = ''.join(textNum) Clipboard.setText(Newtext) res = {"type": "text", "text": text}
才达到了我想要的效果,感谢大佬,
建议大佬考虑,重复截图加个选项,可以增加 自定义坐标,这样就不用每次 打开软件都要先截图一次 才可以使用这个功能了
如果粘贴板本身是text的情况下
哦哦,我之前理解错了你的意思,抱歉~ 你的改法确实可行的。
重复截图加个选项
技术上不难,主要是不想在UI里塞太多东西让软件变得复杂。我考虑一下。
大佬,这个代码只能筛选 截图或者粘贴图片的结果. 如果 我本身复制的结果是 文字(21156一二三四),然后想通过 粘贴图片的功能 筛选出21156.请问是修改哪一段的代码
Originally posted by @kyon777 in https://github.com/hiroi-sora/Umi-OCR/issues/403#issuecomment-1987396098