【opencv】生成二维码并识别

  • 生成二维码
  • 图片识别
  • 摄像头识别

生成二维码

import qrcode #模块导入
#调用qrcode的make()方法传入url或者想要展示的内容
img = qrcode.make('http://www.baidu.com')
#写入文件
with open('test.png', 'wb') as f:img.save(f)'''
此处并没有使用add_data()添加数据,make_image()生成二维码,而是使用qrcode.make(data)的方式获取im对象。qrcode.make()是qrcode提供简单调用接口。- 2. 正常生成二维码的步骤:
创建QRCode对象
add_data()添加数据
make_image()创建二维码(返回im类型的图片对象)
自动打开图片,im.show()
- 3. QRCode参数详细说明:
version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=True 参数即可。
error_correction: 二维码的纠错范围,可以选择4个常量:
··1. ERROR_CORRECT_L 7%以下的错误会被纠正
··2. ERROR_CORRECT_M (default) 15%以下的错误会被纠正
··3. ERROR_CORRECT_Q 25 %以下的错误会被纠正
··4. ERROR_CORRECT_H. 30%以下的错误会被纠正
boxsize: 每个点(方块)中的像素个数
border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4'''
'''
import qrcodedata = 'http://www.baidu.com/'
img_file = r'保存路径'# 实例化QRCode生成qr对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4
)
# 传入数据
qr.add_data(data)qr.make(fit=True)# 生成二维码
img = qr.make_image()# 保存二维码
img.save(img_file)
# 展示二维码
img.show()'''    '''
利用PIL库中image模块的paste函数
img.paste(path,where,mask=None)
其中,img为image对象;path为所添加图片;where为tuple,如:(x,y),表示图片所在二维码的横纵坐标'''
'''
import qrcode
from PIL import Image
import matplotlib.pyplot as pltdef getQRcode(data, file_name):qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=5,border=4,)# 添加数据qr.add_data(data)# 填充数据qr.make(fit=True)# 生成图片img = qr.make_image(fill_color="green", back_color="white")# 添加logo,打开logo照片icon = Image.open("1.jpg")# 获取图片的宽高img_w, img_h = img.size# 参数设置logo的大小factor = 6size_w = int(img_w / factor)size_h = int(img_h / factor)icon_w, icon_h = icon.sizeif icon_w > size_w:icon_w = size_wif icon_h > size_h:icon_h = size_h# 重新设置logo的尺寸icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)# 得到画图的x,y坐标,居中显示w = int((img_w - icon_w) / 2)h = int((img_h - icon_h) / 2)# 黏贴logo照img.paste(icon, (w, h), mask=None)# 终端显示图片plt.imshow(img)plt.show()# 保存imgimg.save(file_name)return imgif __name__ == '__main__':getQRcode("世情薄,人情恶,雨送黄昏花易落。晓风干,泪痕残,欲笺心事,独语斜阑。""难,难,难!人成各,今非昨,病魂常似秋千索。角声寒,夜阑珊,怕人寻问,咽泪装欢。瞒,瞒,瞒!", 'my.png')
'''

图片识别

import cv2
import numpy as np
from pyzbar.pyzbar import decodeimg = cv2.imread('test.png')#识别图片中二维码
for barcode in decode(img):print(barcode.data)myData = barcode.data.decode('utf-8')print(myData)pts = np.array([barcode.polygon],np.int32)pts = pts.reshape((-1,1,2))cv2.polylines(img,[pts],True,(255,0,255),5)#圈框pts2 = barcode.rectcv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,0.9,(255,0,255),2)#标字cv2.imshow('Result',img)
cv2.waitKey(0)

摄像头识别

import cv2
import numpy as np
from pyzbar.pyzbar import decode#img = cv2.imread('1.png')#识别图片中二维码
cap = cv2.VideoCapture(0)#使用摄像头识别
cap.set(3,640)
cap.set(4,480)while True:success, img = cap.read()for barcode in decode(img):print(barcode.data)myData = barcode.data.decode('utf-8')print(myData)pts = np.array([barcode.polygon],np.int32)pts = pts.reshape((-1,1,2))cv2.polylines(img,[pts],True,(255,0,255),5)#圈框pts2 = barcode.rectcv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,0.9,(255,0,255),2)#标字cv2.imshow('Result',img)cv2.waitKey(1)

【opencv】生成二维码并识别相关推荐

  1. Android利用zxing生成二维码,识别二维码,中间填充图片超详细、超简易教程

    gayhub上的zxing可用于生成二维码,识别二维码 gayhub地址:https://github.com/zxing/zxing 此文只是简易教程,文末附有完整代码和demo下载地址,进入正题: ...

  2. 生成二维码、识别二维码的工具类

    笔者日常: 第一次用markdown写文章,有点手生~ 声明: 此工具类由本人二次整理改造后分享给大家,原编写者未知,虽然本人重写了大部分逻辑代码,但是核心部分仍然是采用的原来的代码.若涉及侵权问题, ...

  3. 数字图像处理二维码识别 python+opencv实现二维码实时识别

    数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...

  4. Flutter - 生成二维码与识别二维码

    #生成二维码 ##首先需要在pubspec.yaml:中添加 qr_flutter: ^1.1.3 其次,引入代码: import 'package:qr_flutter/qr_flutter.dar ...

  5. OpenCV+Python二维码条形码识别

    先上源码,github地址:https://github.com/DerrickRose25/Opencv_QRcode_recognition 环境:Pycharm .Python3.7 在pych ...

  6. Java中识别二维码并且提高二维码的识别率

    我们在Java开发的时候,发现对二维码的识别是不足的.所以我们需要提高识别率. 第一步.识别图片二维码.准备相应的jar包.我们在gradle+idea中开发. compile group: 'com ...

  7. Android利用zxing生成二维码

    感谢大佬:https://blog.csdn.net/mountain_hua/article/details/80646089 **gayhub上的zxing可用于生成二维码,识别二维码 gayhu ...

  8. 用不同的QR Code识别库实现二维码的识别(第一篇:opencv 和BoofCV)

    最近有个项目需要实现二维码的识别和摄像头的数据采集.在开始正式项目之前,我决定用python写几行简单的代码来测试每个库的识别效果.这次没有连续测量,也没有使用多线程识别.只是简单的测试了每个二维码的 ...

  9. python opencv 条形码及二维码检测识别

    目录 条形码检测识别 二维码检测识别 基于python opencv pyzbar 实现. 条形码检测识别 原图: 最后截取图: 直接上代码: import cv2 import numpy as n ...

最新文章

  1. value数字 vue_基于Vue开发数字输入框组件
  2. jsdbc mysql.ocx_JS直接访问数据 -SQLite | 学步园
  3. Java ClassLoader findLoadedClass()方法与示例
  4. mysql单张表数据量极限_极限数据量范围的安全测试
  5. Linux系统下poll的使用方式
  6. IEC_60068-2-64基本环境试验规程第2-64部分试验试验Fh振动、宽带随机抽样
  7. Exchange 2016 体系结构
  8. 清除VCENTER中的日志文件
  9. 虚拟机 系统镜像 下载地址
  10. 机器视觉常用算法C语言实现
  11. 《快学Scala》第6章 对象 练习
  12. 【机器学习线性代数】17 利用SVD进行彩色图片压缩
  13. 《操作系统》工作集详解
  14. Didn't find class android.support.v7.widget.RecyclerView 解决办法 ———————————————— 版权声明:本文为CSDN博主「eag
  15. Scrapy框架 - 学习日记2
  16. Ceph-deploy 搭建Ceph分布式存储系统
  17. 最近用360浏览器访问部分网站显示 se://error/ 打不开网站,但是用别的浏览器可以正常访问,摸索半天放出解决方法
  18. winmail.dat
  19. 台式计算机找不到无线连接,我的win7台式机找不到无线网卡解决方法介绍
  20. 如何操作添加QQ邮箱独立密码?干货来啦!QQ邮箱怎样操作设置独立密码?

热门文章

  1. html拖放api之图片相框,html5拖放API简介及应用
  2. 一个人的旅游(十一、成都、九寨沟)
  3. 抽象类 ---模板方法
  4. python提取字符串中的大写字母、小写字母
  5. Java 实现简单打字游戏
  6. 使用R语言进行决策树建模
  7. 【华为OD机试真题】货币单位换算(C++javapython)100%通过率 超详细代码注释 代码优化
  8. tensorflow实现lenet5
  9. Towards Perceptual Image Dehazing by Physics-Based Disentanglement and Adversarial Training(2019)
  10. ftp创建用户名和密码