最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

对比分析python下识别二维码用法和识别率

来源:动视网 责编:小采 时间:2020-11-27 14:23:34
文档

对比分析python下识别二维码用法和识别率

对比分析python下识别二维码用法和识别率:最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。1、三个模块的用法:#-*-coding=utf-8-*-import os import loggingimport zbar from PIL import Image import zx
推荐度:
导读对比分析python下识别二维码用法和识别率:最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。1、三个模块的用法:#-*-coding=utf-8-*-import os import loggingimport zbar from PIL import Image import zx


最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。

1、三个模块的用法:

#-*-coding=utf-8-*-import os 
import loggingimport zbar 
from PIL import Image 
import zxingimport randomimport zbarlight

logger=logging.getLogger(__name__)if not logger.handlers :logging.basicConfig(level=logging.INFO)
DEBUG= (logging.getLevelName(logger.getEffectiveLevel())=='DEBUG') 


def ocr_qrcode_zbar(filename):
 img=Image.open(filename)
 width, height = img.size
 raw = img.tobytes()
 
 scanner = zbar.ImageScanner()
 scanner.parse_config('enable') #把图像装换成数据zarimage = zbar.Image(width, height, 'Y800', raw) #扫描器进行扫描 scanner.scan(zarimage)
 
 data = '' for symbol in zarimage:# 对结果进行一些有用的处理data += symbol.data if data:
 logger.debug(u'识别二维码:%s,内容: %s' %(filename ,data))else:
 logger.error(u'识别zbar二维码出错:%s' %(filename))
 img.save('%s-zbar.jpg' %filename) return data 

def ocr_qrcode_zbarlight(filename):
 img=Image.open(filename)

 width, height = img.size
 raw = img.tobytes() #把图像装换成数据data = zbarlight.qr_code_scanner(raw, width, height) if data:
 logger.debug(u'识别二维码:%s,内容: %s' %(filename ,data))else:
 logger.error(u'识别zbarlight二维码出错:%s' %(filename))
 img.save('%s-zbar.jpg' %filename) return data 

def ocr_qrcode_zxing(filename):#在当前目录生成临时文件,规避java的路径问题img= Image.open(filename)
 ran= int(random.random()*100000)
 img.save('%s%s.jpg' %(os.path.basename(filename).split('.')[0],ran))
 zx = zxing.BarCodeReader()
 data =''zxdata = zx.decode('%s%s.jpg' %(os.path.basename(filename).split('.')[0],ran))#删除临时文件os.remove('%s%s.jpg' %(os.path.basename(filename).split('.')[0],ran))if zxdata:
 logger.debug(u'zxing识别二维码:%s,内容: %s' %(filename ,zxdata.data))
 data = zxdata.dataelse:
 logger.error(u'识别zxing二维码出错:%s' %(filename))
 img.save('%s-zxing.jpg' %filename) return data 
if __name__ == '__main__': 
 filename =r'D:python