Python什么都能做(一)用 Python 做一個掃碼工具


Python實現掃碼工具

二維碼作為一種信息傳遞的工具,在當今社會發揮了重要作用。從手機用戶登錄到手機支付,生活的各個角落都能看到二維碼的存在。那你知道二維碼是怎么解析的嗎?有想過自己實現一個掃碼工具嗎?如果想的話就繼續看下去吧!

一、案例分析

我們先思考一下,實現掃碼工具需要寫什么操作。在掃碼過程中我們需要打開攝像頭,如何由手機或者電腦識別二維碼。所以我們要實現兩個關鍵的步驟:調用攝像頭、識別二維碼。

這兩個操作分別對應了兩個模塊,它們就是opencv和pyzbar,其中opencv是英特爾的計算機視覺處理模塊,而pyzbar則是用於解析二維碼的模塊。

 

很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過后,不知道在哪里尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那么針對這三類人,我給大家提供一個好的學習平台,免費領取視頻教程,電子書籍,以及課程的源代碼!
QQ群:1156465813

 

二、環境

環境包括python環境和模塊。我的環境如下:

系統:Windows 10
python:python 3.7.9
opencv:opencv-python-4.4.0.44
pyzbar:pyzbar-0.1.8

模塊安裝很簡單,我們直接用pip安裝,先安裝opencv模塊:

pip install opencv-python

然后是pyzbar模塊:

pip install pyzbar

在未指定安裝版本時,系統會自動安裝最新版。安裝好模塊后,我們就可以來實現掃碼工具了。

三、識別二維碼

有了pyzbar模塊后,我們識別二維碼的工作就非常簡單了,首先需要准備一張二維碼。有了二維碼后就可以開始解析了,具體步驟如下:

1.讀取二維碼圖片2.解析二維碼中的數據3.在解析出的數據中提取data信息

實現代碼如下:

在上面我們解析了兩次,第一次獲取了一個data,我們先來看看data長什么樣子:

可以看到是一個列表,而且列表的第一個數據包含url的信息。所以我們需要通過下面的代碼再次解析:

 

這樣我們就能拿到二維碼中包含的信息了。為了方便后續使用,可以將上面的代碼寫成一個函數:

接下來我們再看看如何調用攝像頭。

 

四、調用攝像頭

在opencv中提供了一個VideoCapture類用於讀取視頻,同樣可以用來調用攝像頭。調用攝像頭的步驟如下:

1.調用攝像頭2.循環3.在循環內讀取一幀畫面4.顯示當前讀取的畫面5.等待鍵盤輸入6.判斷是否按退出鍵q7.按了退出鍵則退出,沒按則繼續循環

具體代碼如下:

你們可以自己嘗試運行一下上面的代碼,效果就像是打開了自己的前置攝像頭。

現在調用了攝像頭,我們可以把兩部分的代碼結合起來。

五、實現掃碼工具

我們掃碼工具的主體部分是調用攝像頭的操作,我們需要對讀取到的每一幀畫面進行解析,當解析出結果后輸出並退出。具體代碼如下:

上面我們把scan_qrcode函數修改了一下,從原來的傳入圖片路徑到直接傳入圖片對象。因為通過VideoCapture對象獲取的圖片幀和通過cv2.imread獲取的圖片是同一數據類型。

上面關鍵步驟在解析二維碼的操作。首先定義一個text,因為解析過程中如果沒有二維碼會出現異常,所以用try-except語句處理。如何通過if判斷text的內容,只有當我們真正解析到了數據,程序才會輸出結果,並退出程序。

到這里,我們就實現了掃碼工具。

 

以下內容無用,為本篇博客被搜索引擎抓取使用
(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)
python 是干什么的 零基礎學 python 要多久 python 為什么叫爬蟲
python 爬蟲菜鳥教程 python 爬蟲萬能代碼 python 爬蟲怎么掙錢
python 基礎教程 網絡爬蟲 python python 爬蟲經典例子
python 爬蟲
(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)
以上內容無用,為本篇博客被搜索引擎抓取使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM