二維碼廣泛應用于我們的日常生活中,比如微信和支付寶支付,火車票,商品標識等等,二維碼種類有很多,包括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二維碼的最小區域四邊形的四個頂點坐標,即二維碼的四個頂點坐標,結果以字串的形式回傳,
結束!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299774.html
標籤:其他
上一篇:OpenCV霍夫變換進行形狀檢測
下一篇:Hadoop的安裝與除錯(2)
