python实现树莓派生成并识别二维码
python实现树莓派生成并识别二维码
参考来源:http://blog.csdn.net/Burgess_Liu/article/details/40397803
设备及环境
- 树莓派2代
- 官方系统Raspbian
- 官方树莓派摄像头模块
设备连接
摄像头模块插入到距离网卡口最近的那个接口,板上有Camera的字样,看清楚正反面。
启用摄像头
sudo raspi-config- 选项:Camera
- 选项:Enable
- 选项:Finish
- 选项:Reboot
关键代码
安装依赖环境:
sudo apt-get install python-imaging
sudo apt-get install zbar-tools
sudo apt-get install qrencode
sudo apt-get install python-pygame
python代码:
qrcode.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os, signal, subprocess
strfile1 = "qrcode"
def erzeugen():
text=raw_input(u"enter text QRCode: ")
os.system("qrencode -o "+strfile1+".png '"+text+"'")
print u"QRCode in: "+strfile1+".png"
def lesen():
os.system("raspistill -w 320 -h 240 -o /home/pi/cameraqr/image.jpg")
print u"raspistill finished"
#zbarcam=subprocess.Popen("zbarcam --raw --nodisplay /dev/video0", stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
#print u"zbarcam started successfully..."
#qrcodetext=zbarcam.stdout.readline()
zbarcam=subprocess.Popen("zbarimg --raw /home/pi/cameraqr/image.jpg", stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
qrcodetext=zbarcam.stdout.readline()
if qrcodetext!="":
print qrcodetext
else:
print u"qrcodetext is empty"
#os.killpg(zbarcam.pid, signal.SIGTERM)
print u"zbarcam stopped successfully..."
return u"QRCode: "+qrcodetext
main.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import qrcode
while (True):
print u"1: qrcode create"
print u"2: qrcode identify"
print u"3: exit"
select=int(raw_input(u"please choose: "))
if select == 1:
qrcode.erzeugen()
elif select == 2:
result=qrcode.lesen().strip()
print result
elif select == 3:
print u"programme completed..."
break
使用方法
选项1:生成文本二维码,输入文本回车即可,路径在当前路径,文件名: qrcode.png
选项2:识别二维码:摄像头对准二维码即可(无法识别的提示,请摆准摄像头再次运行选项2)
python实现树莓派生成并识别二维码的更多相关文章
- 使用ZXing.Net生成与识别二维码(QR Code)
Google ZXing是目前一个常用的基于Java实现的多种格式的1D/2D条码图像处理库,出于其开源的特性其现在已有多平台版本.比如今天要用到的ZXing.Net就是针对微软.Net平台的版本.使 ...
- 在Windows IoT上生成和识别二维码
在Windows IoT生成和识别二维码,实际上由于是UWP上实现,所以,理论上,这些生成和识别二维码的方法也可以在其它平台上运行. 关于二维码的生成有很多库可以实现,比如QRCoder,这个库可以在 ...
- Python3+qrcode+zxing生成和识别二维码教程
一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错“Cou ...
- C#生成和识别二维码
用到外部一个DLL文件(ThoughtWorks.QRCode.dll),看效果 生成截图 识别截图 生成二维码后右键菜单可以保存二维码图片,然后可以到识别模式下进行识别,当然生成后可以用手机扫描识别 ...
- PHP 生成、识别二维码及安装相关扩展/工具
2018-02-20 00:30:26 更新:推荐新扩展(极力推荐) 这篇文章里用的两个二维码扩展都有些问题和麻烦:phpqrcode(生成二维码)的源码有点小 bug: 而 php-zbarcod ...
- Python用MyQR生成自定义个性二维码
MyQR是一个能够生成自定义二维码的python第三方库,根据需要能够生成普通二维码.带背景图片的艺术二维码.动态二维码. 1.MyQR安装 安装非常简单,直接用pip install MyQR,需要 ...
- 利用ZXing.Net生成和识别二维码
ZXing.Net:ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库. github:https://github.com/micjahn/ZXing.Net 直接将字符 ...
- ZXing 生成、读取二维码(带logo)
前言 ZXing,一个支持在图像中解码和生成条形码(如二维码.PDF 417.EAN.UPC.Aztec.Data Matrix.Codabar)的库.ZXing(“zebra crossing”)是 ...
- Pyqt+QRcode 生成 识别 二维码
1.生成二维码 python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrco ...
随机推荐
- Android书籍资源汇总
之前一直在Linux下使用C++做服务器端的开发工作,对Android关于移动方面的开发了解较少,现将android开发方面的书籍与资源整理如下,方便后续的查阅. 19本Android开发书籍 7本A ...
- .NET Reflector反编译的方法
首先启动.NET Reflector,然后添加进入dll或exe.然后选择Export Source Code...,将反编译后的代码文件,生成到指定目录. 到这一步骤时,稍等一会,就能够在指定目录就 ...
- git gc
git gc 有时候当你运行一些git命令(比如git pull)的时候,会有如下提示: 1 2 Auto packing the repository for optimum performance ...
- AnyCAD C++ SDK与OpenCASCADE互操作
AnyCAD SDK有.Net和C++两个版本,使用C++版本的AnyPlatformOcc模块可以实现与OpenCASCADE互操作. C++版本(VS2010 32bit)下载 在AOBridge ...
- Observer
#include <iostream> #include <list> using namespace std; #define DESTROY_POINTER(ptr) if ...
- Js 访问Aspnet后台页面变量
一.普通WebForm页面 <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server ...
- [leetcode]_Merge Sorted Array
题目:合并两个有序数组A , B,将合并后的数组存到A中.假设A的空间足够装下A和B所有的元素. 思路:这道题考虑如果正向扫描两个数组,则每插入一个元素,则需移动A后的所有元素.换个角度想,既然元素个 ...
- js----全局变量和局部变量部分讲解
以此文作为自己学习的一个总结. 关于全局变量和局部变量的一句简单的定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 var a = 1; fu ...
- luigi学习-luigi的配置文件
一.luigi配置文件的加载顺序 /etc/luigi/client.cfg luigi.cfg LUIGI_CONFIG_PATH环境变量 二.配置文件分节 配置文件被分为了多个section,每一 ...
- luigi学习1
一.luigi介绍 luigi是基于python语言的,可帮助建立复杂流式批处理任务管理系统.这些批处理作业典型的有hadoop job,数据库数据的导入与导出,或者是机器学习算法等等. luigi的 ...