【树莓派学习】十、使用zbar进行二维码识别

一、介绍几个函数

1、把区域里的二维码传换成 RGB, 并把它转换成 pil 里面的图像

pil= Image.fromarray(frame).convert('L')#转换成 L 模式, 即灰度模式
width, height = pil.size
raw = pil.tobytes()

2、调用 zbar 二维码识别库函数

zarimage = zbar.Image(width, height, 'Y800', raw)#把图像装换成数据
scanner.scan(zarimage)#扫描器进行扫描

二、示例代码

首先需要输入以下代码,进行安装zbar

sudo apt-get install python-zbar
import cv2
import numpy as np
import zbar
from PIL import Image

# create a reader
scanner = zbar.ImageScanner()
# configure the reader
scanner.parse_config('enable')
font=cv2.FONT_HERSHEY_SIMPLEX
camera=cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    grabbed, frame = camera.read()
    if not grabbed:
        break
    pil= Image.fromarray(frame).convert('L')
    width, height = pil.size
    raw = pil.tobytes()
    zarimage = zbar.Image(width, height, 'Y800',raw)
    scanner.scan(zarimage)
    for symbol in zarimage:
    # do something useful with results 
		if not symbol.count:
			print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
		cv2.putText(frame,symbol.data,(20,100),font,1,(0,255,0),4)
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

三、运行效果

就拿下面这个二维码为例,试试看效果咯~
在这里插入图片描述

效果还不错嘛

在这里插入图片描述

发布了653 篇原创文章 · 获赞 1016 · 访问量 73万+

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/103697480
今日推荐