c++opencv显示中文_OpenCV图像处理-二维码检测和识别

二维码检测和识别

由于一些原因,很久没有分享新的opencv相关知识点了,非常抱歉,先分享一个简单的二维码问题,后续会不定期学习更新一些opencv在DeepLearning领域的一些应用场景,希望能和大家一起学习进步 。

概述

根据Opencv的描述,OpenCV3.4.4以上版本支持二维码检测和识别!

函数

Opencv在对象检测模块中 QRCodeDetector 有两个相关API分别实现二维码检测与二维码解析。

  1. 检测API
points = QRCodeDetector.detect(img)

其中:

  • img为输入图像,灰度或者彩色图像;
  • points输出得到的二维码四个点的坐标信息;
  1. 识别API
straight_qrcode = QRCodeDetector.decode(img, points)

其中:

  • img为输入图像,灰度或者彩色图像;
  • points是二维码ROI最小外接矩形顶点坐标;
  • straight_qrcode输出的是二维码区域ROI图像信息 返回的二维码utf-8字符串;
  1. 结合检测识别的API
points,straight_qrcode = QRCodeDetector.detectAndDecode(img)

其中:

  • img为输入图像,灰度或者彩色图像;
  • points输出二维码ROI最小外接矩形顶点坐标;
  • straight_qrcode输出的是二维码区域ROI图像信息 返回的二维码utf-8字符串;

代码

整体检测识别的代码如下:

import cv2
import numpy as np

# 读取二维码
src = cv2.imread("qrcode.png")
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
# 设置检测器
qrcoder = cv2.QRCodeDetector()
# 检测识别二维码
codeinfo, points, straight_qrcode = qrcoder.detectAndDecode(gray)
result = np.copy(src)
cv2.drawContours(result, [np.int32(points)], 0, (0, 0, 255), 2)
# 输出识别二维码的信息
print("qrcode information is : n%s"% codeinfo)
# 显示图片
cv2.imshow("result", result)
cv2.imshow("qrcode roi", np.uint8(straight_qrcode))
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

qrcode information is : 
Hello, this is Jimmy, thanks for your little star~

原图:

217362e091486ed88b2d7ae23728dbe3.png

检测:

91ffd022d500ea19974aeaba6aac4c5a.png

ROI图:

520dcf7e78e8346b38b7c1823a22f758.png

------------------------------------------可爱の分割线------------------------------------------

更多Opencv教程可以 Follow github的opencv教程,中文&English 欢迎Star❤️❤️❤️

JimmyHHua/opencv_tutorials​github.com
c653fd61c1faafea0163d3064d8dd271.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值