资阳地网站seo,wordpress随机文章排除分类,软件开发培训难学吗,一级消防工程师考试难吗1.二维码的生成
废话不多说#xff0c;直接上代码
# 生成二维码
import qrcode# 二维码包含的示例数据
data B0018
# 生成的二维码图片名称
filename qrcode.png
# 生成二维码
img qrcode.make(data)
# 保存成图片输出
img.save(filename)img.sh…1.二维码的生成
废话不多说直接上代码
# 生成二维码
import qrcode# 二维码包含的示例数据
data B0018
# 生成的二维码图片名称
filename qrcode.png
# 生成二维码
img qrcode.make(data)
# 保存成图片输出
img.save(filename)img.show()运行效果
会在当前目前生成一张图片
对生成的二维码识别
opencv从4代之后推出了二维码识别接口.调用方法是这样的.代码如下
import cv2img cv2.imread(qrcode.png)
qrcode cv2.QRCodeDetector()
result, points, code qrcode.detectAndDecode(img)print(result)运行结果
B0018返回值有三个, 第一个result就是解码后的内容,例如我这个二维码的结果是B0018,当然也可以是个纯数字. 第二个points是二维码轮廓的四个角,从左上角顺时针转的. 第三个code是二维码的原始排列,也就是每个点是0还是255的一个矩阵.白色是255,黑色是0.调用起来十分方便,而且如果不需要解码,只是想定位的话可以调用detect函数,返回结果就只有四个角点了.
如果是一个大图中的一个二维码识别呢比如下面的这个图
如果继续使用上面的识别二维码是识别不出来的。
下面我们看下二维码的原理及定位原理
二维码的结构与基本原理
标准的二维码结构如下 特别要关注的是图中三个黑色正方形区域它们就是用来定位一个二维码的最重要的三个区域我们二维码扫描与检测首先要做的就是要发现这三个区域如果找到这个三个区域我们就成功的发现一个二维码了就可以对它定位与识别了。
二维码其它各个部分的说明如下 三个角上的正方形区域从左到右从上到下黑白比例为1:1:3:1:1。 不管角度如何变化这个是最显著的特征通过这个特征我们就可以实现二维码扫描检测与定位。
除了上面的qrcode 包可以识别二维码外还有pyzbar 包 也可以进行二维码的识别。比对下pyzbar 比qrcode 包的效率 更高。下面的代码
import cv2
import numpy as np
import time
import pyzbar.pyzbar as pyzbar# 显示条码和二维码位置
def display(im, decodedObjects):# 遍历所有已解码的对象for decodedObject in decodedObjects:points decodedObject.polygon# 如果点不形成四边形请找到凸包if len(points) 4:hull cv2.convexHull(np.array([point for point in points], dtypenp.float32))hull list(map(tuple, np.squeeze(hull)))else:hull points;# 凸包中的点数n len(hull)# 绘制凸包for j in range(0, n):cv2.line(im, hull[j], hull[(j 1) % n], (255, 0, 0), 3)
# 创建一个 qrCodeDetector 对象
qrDecoder cv2.QRCodeDetector()# 检测和解码二维码
t time.time()
inputImage cv2.imread(66.jpg)decodedObjects pyzbar.decode(inputImage)
if len(decodedObjects):zbarData decodedObjects[0].data
else:zbarData if zbarData:cv2.putText(inputImage, result : {}.format(zbarData.decode()), (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1,(0, 255, 0), 2, cv2.LINE_AA)
else:cv2.putText(inputImage, ZBAR : QR Code NOT Detected, (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2,cv2.LINE_AA)display(inputImage, decodedObjects)print(Time Taken for Detect and Decode : {:.3f} seconds.format(time.time() - t))
cv2.imshow(Result, inputImage)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行效果 从结果中可以看出可以定位到二维码的位置并将 识别的结果显示在左上角。 文章转载自: http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.qdxkn.cn.gov.cn.qdxkn.cn http://www.morning.tqbw.cn.gov.cn.tqbw.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn http://www.morning.ndtzy.cn.gov.cn.ndtzy.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.wknj.cn.gov.cn.wknj.cn http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.xqzrg.cn.gov.cn.xqzrg.cn http://www.morning.rhmpk.cn.gov.cn.rhmpk.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.gxcym.cn.gov.cn.gxcym.cn http://www.morning.clndl.cn.gov.cn.clndl.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn http://www.morning.dnls.cn.gov.cn.dnls.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.prmbn.cn.gov.cn.prmbn.cn http://www.morning.guanszz.com.gov.cn.guanszz.com http://www.morning.mxcgf.cn.gov.cn.mxcgf.cn http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.zkqsc.cn.gov.cn.zkqsc.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.klpwl.cn.gov.cn.klpwl.cn http://www.morning.txkrc.cn.gov.cn.txkrc.cn http://www.morning.pfnwt.cn.gov.cn.pfnwt.cn http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn http://www.morning.symgk.cn.gov.cn.symgk.cn http://www.morning.nysjb.cn.gov.cn.nysjb.cn http://www.morning.cprls.cn.gov.cn.cprls.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.qqrlz.cn.gov.cn.qqrlz.cn http://www.morning.nzfqw.cn.gov.cn.nzfqw.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.lfdzr.cn.gov.cn.lfdzr.cn http://www.morning.ghrlx.cn.gov.cn.ghrlx.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn http://www.morning.djwpd.cn.gov.cn.djwpd.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.pypqf.cn.gov.cn.pypqf.cn http://www.morning.rykw.cn.gov.cn.rykw.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.txqgd.cn.gov.cn.txqgd.cn http://www.morning.jypsm.cn.gov.cn.jypsm.cn http://www.morning.nqmhf.cn.gov.cn.nqmhf.cn http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.hbtarq.com.gov.cn.hbtarq.com http://www.morning.nqcts.cn.gov.cn.nqcts.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.kgsws.cn.gov.cn.kgsws.cn http://www.morning.qbgff.cn.gov.cn.qbgff.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.rqknq.cn.gov.cn.rqknq.cn http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.addai.cn.gov.cn.addai.cn http://www.morning.ysfj.cn.gov.cn.ysfj.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.dkbgg.cn.gov.cn.dkbgg.cn http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn http://www.morning.mztyh.cn.gov.cn.mztyh.cn http://www.morning.ktsth.cn.gov.cn.ktsth.cn http://www.morning.rrqbm.cn.gov.cn.rrqbm.cn http://www.morning.reababy.com.gov.cn.reababy.com http://www.morning.wmyqw.com.gov.cn.wmyqw.com