hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
23.04k stars 2.35k forks source link

二维码识别问题,不支持彩色二维码识别 #512

Closed neauxty closed 1 month ago

neauxty commented 2 months ago

Issues

Umi-OCR version 程序版本

2.1.1

Windows version 系统版本

win10

OCR plugins Used 使用的OCR插件

PaddleOCR

Reproduction steps 复现步骤

大佬您好,我这边需要对微信二维码进行识别,通过http请求测试了一下您写的插件,微信彩色二维码识别不了,我看第三方可能先是做了灰度反差处理,进行识别的,有空能不能看下(草料二维码有类似的功能,他们是纯前端识别的,不知道有没有参考价值)

Problem screenshots or related files (optional) 问题截图或相关文件(可选)

WechatIMG223

hiroi-sora commented 2 months ago

你好,Umi是支持灰度/二值化的哦,不过暂无法智能判断,需要用户手动设定、调参。

二维码标签页 → 设置 → 勾选 高级 → 勾选 转为灰度二值化 填写 200

就可以识别您的样例啦

image

neauxty commented 2 months ago

你好,Umi是支持灰度/二值化的哦,不过暂无法智能判断,需要用户手动设定、调参。

二维码标签页 → 设置 → 勾选 高级 → 勾选 转为灰度二值化 填写 200

就可以识别您的样例啦

image

大佬,这个客户端试了的确可以,我是用http请求测得,还是显示101

hiroi-sora commented 2 months ago

哦,抱歉,HTTP接口暂时不套用软件界面上的设定,需要手动修改代码来传入设定。

请打开 UmiOCR-data\py_src\server\cmd_server.py ,第291行,将

                res = MissionQRCode.addMissionWait({}, [{"pil": pil}])

修改为:

                argd = {
                    "preprocessing.grayscale": True,
                    "preprocessing.threshold": 200,
                }
                res = MissionQRCode.addMissionWait(argd, [{"pil": pil}])

这样就能修改HTTP接口的参数了。

image

更多可设定参数为:

neauxty commented 1 month ago

按照图示改完了,还是识别不了,也重启过

image
hiroi-sora commented 1 month ago

抱歉,我之前看错了文件。

应该在 UmiOCR-data\py_src\server\qrcode_server.py ,第11行,修改addMissionWait的参数,即:

def base2text(base64):
    argd = {
        "preprocessing.grayscale": True,
        "preprocessing.threshold": 200,
    }
    res = MissionQRCode.addMissionWait(argd, [{"base64": base64}])
    return res[0]["result"]

我正在将这部分纳入修改,下版本将能够在http指令中,传入二维码的调节参数。

neauxty commented 1 month ago

嗯嗯,感谢大佬,测试没问题👍🏻

hiroi-sora commented 1 month ago

新版本已发布,HTTP支持直接传入参数了。

https://github.com/hiroi-sora/Umi-OCR/releases/latest