对比分析python下识别二维码用法和识别率 |
您所在的位置:网站首页 › barcodereader意思 › 对比分析python下识别二维码用法和识别率 |
#-*-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\00025328.jpg' #zbar二维码识别ltext = ocr_qrcode_zbar(filename) logger.info( u'[%s]Zbar二维码识别:[%s]!!!' %(filename,ltext))print ltext #zbarlight二维码识别ltext = ocr_qrcode_zbarlight(filename) logger.info( u'[%s]Zxing二维码识别:[%s]!!!' %(filename,ltext))print ltext #zxing二维码识别ltext = ocr_qrcode_zxing(filename) logger.info( u'[%s]Zxing二维码识别:[%s]!!!' %(filename,ltext))print ltext |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |