The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
firesh

开源了一个零依赖的 Go 二维码识别库 qore,识别率和速度都优于 ZXing

  •  
  •   firesh · 19h 15m ago · 1083 views

    最近写了一个 Go 的二维码读取库,叫 qore,已经开源: https://github.com/firesh/qcore

    它解决的问题很简单:识别二维码又快又准!

    特点

    • 只用 Go 标准库,零第三方依赖,交叉编译很方便
    • 一张图里能同时定位并识别多个二维码,返回内容和四个角的坐标
    • 自带 CLI,支持 PNG / JPEG / GIF,可以递归扫描目录,也可以通过 --batch-stdin --json 批量处理
    • 提供 Android / iOS 移动端 SDK: https://github.com/firesh/qcore-mobile

    用法

    res, err := qore.Decode(img, nil)        // 识别单个码
    all, err := qore.DecodeAll(img, nil)     // 识别多个码
    r, err := qore.DecodeFile("a.jpg", nil)  // 读文件,自动处理 EXIF 方向
    

    Benchmark

    测试环境是 Apple M3 Max,计时不含读文件和图片解压:

    引擎 合成集(780 张) ms/张 BoofCV 定位召回(1232 个码) ms/张
    qore 96.67% 7.95 91.2% 19.18
    zxing-cpp 93.85% 19.61 79.9% 44.17
    wechat-qr 87.44% 16.93 41.6% 88.84
    opencv-qr 52.18% 64.38 59.9% 171.91

    多码场景下,qore 和 zxing-cpp 都是 100%,wechat-qr 是 55%。完整的分场景结果和失败样本在这里: https://firesh.github.io/qcore/benchmark/ ,复测脚本也在仓库里。

    库本身是 MIT 协议,欢迎试用、提 issue,尤其欢迎扔一些识别不出来的图过来 🙏

    5 replies  •  2026-11-14 20:02:43 +08:00
    patrickyoung
    patrickyoung
    10h 0m ago
    1
    我有正常的二维码,但是不知道被人做了什么处理,zxing 和你的库都识别不出来,微信和苹果 iOS 相机可以,不太方便公开分享…
    firesh
    firesh
    OP
    7h 53m ago
    2
    @patrickyoung 私信我可以试试看。
    firesh
    firesh
    OP
    7h 47m ago
    3
    @patrickyoung 提 issue 吧。二维码携带的信息很少,有什么不方便的呢?
    patrickyoung
    patrickyoung
    7h 45m ago
    4
    @firesh #3 稍等,我在做可靠复现。二维码里的内容有 PII
    dbskcnc
    dbskcnc
    3h 2m ago
    5
    比 wechat 的还好,那真得支持下,国内用 qr 的可真不少
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:05 · PVG 23:05 · LAX 07:05 · JFK 10:05
    ♥ Do have faith in what you're doing.