一、引言
基于Ubuntu系统,在Python2.7的环境下,利用OpenCv-Zbar进行二维码识别,并将结果截图保存。
二、安装环境
安装OpenCv:
sudo pip3 install opencv_python
安装Zbar:
sudo apt-get install python-zbar
三、代码示例:
# coding:utf-8
from PIL import Image
import zbar
import cv2
# 解析二维码
def decode_QR(img):
# 获得扫描器对象
scanner = zbar.ImageScanner()
pil = Image.fromarray(img).convert('L')
width, height = pil.size
raw = pil.tobytes()
# 转为GRAY灰度图像
image = zbar.Image(width, height, 'Y800', raw)
# 解析图像,对图像进行处理
scanner.scan(image)
data = ''
for symbol in image:
data += symbol.data
del (image)
if data != '':
cv2.putText(img, data, (50, 50), cv2.FONT_HERSHEY_SIMPLEX,
.6, (0, 255, 0), 2)
cv2.imwrite('erweima.jpg', img)
print data
# 调用摄像头识别二维码
def detect():
# 调用内置摄像头
camera = cv2.VideoCapture(0)
# 实时显示图像
while True:
# 读取当前帧
ret, frame = camera.read() # ret:boolean值,表示是否正常打开摄像头 frame:获取当前帧图像
# 调用解析函数
decode_QR(frame)
# 按Q键退出程序
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 显示图像
cv2.imshow("camera", frame)
# 释放摄像头资源
camera.release()
# 关闭显示图像的窗口
cv2.destroyAllWindows()
if __name__ == '__main__':
detect()
效果截图: