本文主要是介绍【python 图片识别】python识别图片是不是包含二维码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
近几天在研究二维码的识别,主要是通过python代码来识别特定图片内是否包含二维码。方法有分类,还有下面我介绍的直接法。
需要安装库
pip install pyzbar
pip install opencv-python
我们 先准备些二维码
总共有11个二维码。
下面我们进行二维码识别:
# -*- coding: utf-8 -*-import os
from pyzbar.pyzbar import decode
import cv2"""
图片包含二维码检测
"""
def qrcode_recongnize(filepath,filename):""":param filepath: 图片路径:param filename: 图片名字:return: qrcode 图片包含二维码,unqrcode 图片不包含二维码"""image_type = []try:# 读取图片image = cv2.imread(filepath+filename)# 灰度化image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)# 解码二维码result = decode(image)if len(result)>0:image_type.append('qrcode')else:image_type.append('unqrcode')except:image_type.append('unqrcode')return image_typeif __name__ == '__main__':filepath="F:/img_spam/test/"for parent,dirnames,filenames in os.walk(filepath):for filename in filenames:kk=qrcode_recongnize(filepath,filename)print(filename,kk)
运行结果:
10064002865114446300320010019402.jpg ['qrcode']
10064002865147474800320010014524.jpg ['qrcode']
10064002865193399400320010025444.jpg ['qrcode']
10064002865201489200320010016199.jpg ['qrcode']
10064002865201508800320010029686.jpg ['qrcode']
10064002866745871400320010015155.jpg ['qrcode']
10064002917911190400320010025075.jpg ['unqrcode']
10064002918088242900320010011993.jpg ['qrcode']
10064002918093458900320010012496.jpg ['qrcode']
10064002918168035600320010029193.jpg ['qrcode']
20181206142636.png ['qrcode']Process finished with exit code 0
识别了10个是二维码,有一个二维码识别错误。进过分析,那个未识别的二维码,并不是微信二维码。
而是一个网站的二维码。说明我们写的这个程序只能识别微信二维码,其他类型的二维码识别不了。后面再看看有没有别的方法。
识别二维码方法二:
# -*- coding: utf-8 -*-from pyzbar.pyzbar import decode
from PIL import Image,ImageEnhance
import os"""
图片包含二维码检测
"""
def qrcode_recongnize(filepath,filename):""":param filepath: 图片路径:param filename: 图片名字:return: qrcode 图片包含二维码,unqrcode 图片不包含二维码"""image_type = []try:# 读取图片img = Image.open(filepath + filename).convert('RGB')# 增加亮度img = ImageEnhance.Brightness(img).enhance(1.0)# 锐利化img = ImageEnhance.Sharpness(img).enhance(1.5)# 增加对比度img = ImageEnhance.Contrast(img).enhance(2.0)# 灰度化img = img.convert('L')# 解码二维码result = decode(img)if len(result)>0:image_type.append('qrcode')else:image_type.append('unqrcode')except:image_type.append('unqrcode')return image_typeif __name__ == '__main__':filepath="F:/img_spam/test/"for parent,dirnames,filenames in os.walk(filepath):for filename in filenames:kk=qrcode_recongnize(filepath,filename)print(filename,kk)
这篇关于【python 图片识别】python识别图片是不是包含二维码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!