python 二维码检测-

参考文章:

使用微信扫一扫二维码接口解密QRcode - 知乎 (zhihu.com)

 

import cv2
import numpy as np
import os

def open_img(img_dir):
    img_list = []
    for _,_,file_list in os.walk(img_dir):
        img_list = [os.path.join(img_dir,file) for file in file_list if file.endswith(".jpg") or file.endswith(".png") ]
    #print("所有文件:{}".format(img_list))
    return img_list

def show(image_path):
    detector = cv2.wechat_qrcode_WeChatQRCode("detect.prototxt", "detect.caffemodel", "sr.prototxt", "sr.caffemodel")
    img = cv2.imread(image_path)
    if img is None:
        #print(f'{image_path}图片打开异常,原始格式不正确')
        return False
    res, points = detector.detectAndDecode(img)
    if res:
        print(f'{image_path}图片含二维码')
        return True
    return False

def img_type_check(path):
    #jpg,gif,png...
    f = open(path,'rb')
    content = f.read()
    return content[:10]

if __name__ == '__main__':
    #单文件判断
    img_path = './image/88.jpg'
    show(img_path)
    

    #批量路径判断
    for im in open_img('E:\\jupyter_wsp\\opencv_3rdparty-wechat_qrcode\\image\\'):
        _ = show(im)


#图像为空的原因可能是文件格式改变了,使用
#img_type_check(path)检测,比如命名为jpg,实际是gif文件。

 

posted @ 2022-11-01 16:22  cup_leo  阅读(134)  评论(0编辑  收藏  举报