使用OpenCV识别二维码
2023-09-11 14:15:47 时间
二维码广泛应用于我们的日常生活中,比如微信和支付宝支付,火车票,商品标识等等,二维码种类有很多,包括QR Code, Data Matrix, Code One等,日常生活中常用的二维码是QR二维码。
各类二维码的特征如下:
QR二维码的识别过程大致分成两个阶段,首先搜索二维码的位置探测图形,即QR二维码三个顶点处的回字区域,QR二维码位置以4个顶点坐标形式给出,之后对二维码进行解码,提取其中的信息。
QR二维码识别是Opencv4新增加的功能,OpenCV4提供了相关函数直接解码QR二维码并读取其中的信息,在OpenCV4之前的版本中,对QR二维码的识别需要借助于第三方工具,常用的是zbar解码库。
针对QR二维码识别的两个过程,OpenCV4提供了多个函数用于实现每个过程,这些函数分别是定位QR二维码的detect函数,根据定位结果解码二维码的decode函数,以及同时进行定位和解码的detectAndDecode函数。
定位QR二维码的位置不但可以用于解码QR二维码,而且可以用于视觉定位,在利用QR二维码定位的任务中,有时不需要对QR二维码进行解码,而是直接使用4个顶点的坐标,因此指定为而不解码QR二维码可以加快系统的运行速度。
程序:
# -*-coding:utf-8 -*-
import cv2 as cv
import numpy as np
# 加载图片
src_image = cv.imread("./webwxgetmsgimg.jpeg")
# 实例化
qrcoder = cv.QRCodeDetector()
# qr检测并解码
codeinfo, points, straight_qrcode = qrcoder.detectAndDecode(src_image)
# 绘制qr的检测结果
cv.drawContours(src_image, [np.int32(points)], 0, (0, 0, 255), 2)
print(points)
# 打印解码结果
print("qrcode :", codeinfo)
cv.imshow("result", src_image)
cv.waitKey(0)
包含二维码的图片
运行结果:
src_img是待检测是否含有QR二维码的灰度图像或者彩色图像,points包含QR二维码的最小区域四边形的四个顶点坐标,即二维码的四个顶点坐标。结果以字符串的形式返回。
结束!
相关文章
- keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)
- Opencv学习笔记 基于Haar级联的人脸检测/识别
- 数字图像处理 使用opencv+python识别七段数码显示器的数字
- Opencv学习笔记 - OpenCV 4机器学习算法简介
- 成功解决cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion fa
- 已解决cv2.error: OpenCV(4.2.0) C:projectsopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: erro
- OpenCV头像识别采集训练数据
- OpenCV使用Canny函数进行边缘检测
- 完美解决opencv-python中文路径解析问题
- 在OpenCV里用kNN实现手写数字识别
- 在OpenCV里实现扑克牌识别1
- 在OpenCV里用kNN实现手写数字识别
- 在OpenCV里使用BRIEF
- OpenCV实例(二)手势识别
- 【课题总结】OpenCV 抠图项目实战(8)图像轮廓
- 【OpenCV 例程200篇】24. 图像的仿射变换(cv2.warpAffine)
- 嵌入式linux开发,opencv移植,opencv-2.4.9移植,cmake-gui