V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ft3312591
V2EX  ›  程序员

如何批量识别图片中的二维码内容

  •  
  •   ft3312591 · 2018-10-18 17:07:41 +08:00 · 5167 次点击
    这是一个创建于 2235 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个需求,一堆图片,右下角带一个二维码信息,内容只是一串数字编号。现在想批量把这些图片的二维码信息识别出来,导出 文件名:二维码编号。python 看了下只有生成二维码的库,识别的库很少,而且也不好用,有没有什么好的方法?

    11 条回复    2018-10-18 18:09:56 +08:00
    blueorange
        1
    blueorange  
       2018-10-18 17:12:05 +08:00
    python 有 zxing 库 加 os 库 os.walk 应该很好处理
    ho121
        2
    ho121  
       2018-10-18 17:20:37 +08:00 via Android
    subprocess.getoutput("zbarimg --raw " + filepath)
    qiayue
        3
    qiayue  
       2018-10-18 17:23:35 +08:00
    iwtbauh
        4
    iwtbauh  
       2018-10-18 17:24:55 +08:00 via Android
    一行 shell 脚本胜过万行系列

    zbarimg -q --raw /path/to/qr/* | xargs -i 你的回调程序 {}
    iwtbauh
        5
    iwtbauh  
       2018-10-18 17:26:19 +08:00 via Android
    @iwtbauh

    如果担心图片其他地方有 qrcode 影响的话就再加上 ImageMagick 裁切一下
    zxq2233
        6
    zxq2233  
       2018-10-18 17:26:37 +08:00
    首先对图片进行批量裁剪。保留有二维码的一块。保存为有规律可循的文件名
    然后对裁剪好的图片进行批量识别。

    如果要用 python 的话可以使用第三方的 api。百度微软谷歌都有二维码识别的免费 api。

    windows 下推荐使用 sobolsoft。(谷歌可以找到破解版)
    zxq2233
        7
    zxq2233  
       2018-10-18 17:30:11 +08:00
    这里提供 sobolsoft crack 版本
    magnet:?xt=urn:btih:22dec55a726463fac4f55a8fad6eebc733382319&dn=Sobolsoft.MS.Powerpoint.Word.Count.And.Frequency.Statistics.v7.0.Incl.Keygen
    iwtbauh
        8
    iwtbauh  
       2018-10-18 17:31:46 +08:00 via Android
    @ho121 #2

    还真有敢这么写的人,Shell Injection 漏洞了解一下
    ho121
        9
    ho121  
       2018-10-18 17:35:31 +08:00 via Android
    @iwtbauh 都是自己本机的图片,会有神呢问题?
    iwtbauh
        10
    iwtbauh  
       2018-10-18 17:43:34 +08:00 via Android
    @ho121 #9

    lz 可没说都是本机的图片,图片可能是用户上传的,图片的文件名称如果是 "xxx;some_evil_command xxx.png",那么服务器可能已经沦陷了。

    这个时候应该 python 应该用像的 os.exec...() 这样的函数而绝对不应该是 subprocess.getoutput 这种会受到注入攻击的函数。

    除非你对系统安全性毫不关心
    MonoLogueChi
        11
    MonoLogueChi  
       2018-10-18 18:09:56 +08:00 via Android
    zxing 库应该可以的,我只会 cs,zxing.net 应该是可以的。前面也有人提到了 py 的 zxing 库,所以 py 应该也是可以的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2666 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:25 · PVG 18:25 · LAX 02:25 · JFK 05:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.