999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV和Zbar的二維碼圖像提取與識(shí)別

2019-08-12 01:27:59潘觀潮王峰王宏武王曉灑劉進(jìn)輝
電腦知識(shí)與技術(shù) 2019年16期

潘觀潮 王峰 王宏武 王曉灑 劉進(jìn)輝

摘要:該文是在Ubuntu16的環(huán)境下,使用OpenCV開源視覺庫(kù)和Zbar開源二維碼識(shí)別庫(kù),對(duì)帶有QR二維碼的圖片先進(jìn)行二維碼提取,然后識(shí)別顯示。該文介紹了二維碼的概況,開發(fā)工具的配置,并詳細(xì)闡述了圖片中二維碼的定位提取過(guò)程:灰度轉(zhuǎn)化、高斯濾波、中值濾波、邊緣檢測(cè)、二值化、閉運(yùn)算、膨脹、提取區(qū)域,以及二維碼的識(shí)別過(guò)程。

關(guān)鍵詞: OpenCV;Zbar;二維碼;識(shí)別;圖像處理

中圖分類號(hào):TP319? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)16-0191-03

開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

隨著經(jīng)濟(jì)和科技的高速發(fā)展,智能手機(jī)在人們生活的普及促進(jìn)了二維碼技術(shù)的發(fā)展與成熟,運(yùn)用二維碼技術(shù)進(jìn)行信息存儲(chǔ)與傳遞正變得越來(lái)越高效與便捷,例如微信/支付寶掃碼支付、二維碼身份認(rèn)證、二維碼存儲(chǔ)信息等,這些都極大地方便了人們的學(xué)習(xí)、生活和工作。因此,對(duì)于二維碼圖像的提取與識(shí)別技術(shù)的相關(guān)研究也日趨重要,同時(shí)也更具研究?jī)r(jià)值。

1 二維碼簡(jiǎn)介

二維碼 (2-dimensional bar code),又被稱為二維條碼,是現(xiàn)代生活中非常流行的一種編碼方式,最常見的形式是QR Code。二維碼將數(shù)據(jù)符號(hào)信息按照一定的幾何圖形規(guī)律記錄在二維平面分布的黑白相間的圖形中,這種編碼巧妙地利用計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來(lái)表示各種類型的數(shù)據(jù)信息[1]。相對(duì)于傳統(tǒng)的一維條形碼,二維碼能夠在橫向和縱向兩個(gè)方向,利用兩個(gè)維度對(duì)信息進(jìn)行存儲(chǔ),極大提高了信息存儲(chǔ)能力[2]。二維碼還具有可靠性強(qiáng),效率高,成本低,易于制作,構(gòu)造簡(jiǎn)單,靈活實(shí)用,高密度,糾錯(cuò)功能,多語(yǔ)言形式,可表示圖像等特點(diǎn)[3]。

在現(xiàn)實(shí)生活中拍攝到的二維碼圖片,除二維碼圖案外,通常還包含其他的背景信息,二維碼圖案只占其中的一部分。因此在識(shí)別二維碼前,應(yīng)先定位出二維碼的大致區(qū)域,并將其提取出來(lái),去掉無(wú)用的背景干擾信息,以提高識(shí)別的速度和準(zhǔn)確率。

2.1 OpenCV與Zbar概述

OpenCV(Open Source Computer Vision Library),譯名為“開源計(jì)算機(jī)視覺庫(kù)”,是一個(gè)基于開源開發(fā)的跨平臺(tái)計(jì)算機(jī)視覺庫(kù)。OpenCV主要由一系列C函數(shù)和C++類組成,擁有包括500多個(gè)C函數(shù)的跨平臺(tái)的中高層API,它提供了大量的開源圖像算法,是計(jì)算機(jī)視覺領(lǐng)域中使用極為廣泛的圖像處理算法庫(kù)[4]。圖1所示為OpenCV的Logo圖形。

Zbar是一個(gè)開源軟件套件,主要用于從各種來(lái)源讀取二維碼/條形碼信息,例如視頻流、圖像文件和傳感器等。它支持許多流行的二維碼/條形碼類型,包括EAN-13 / UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5和QR Code。圖2所示為Zbar的Logo圖形。

2.2 開發(fā)工具配置

本文實(shí)驗(yàn)在Ubuntu16系統(tǒng)上進(jìn)行,因此在Ubuntu上實(shí)現(xiàn)對(duì)OpenCV和Zbar的配置。

安裝OpenCV之前,先要安裝它的依賴項(xiàng)libgtk2.0-dev、libjpeg-dev、libtiff4-dev等。接著在OpenCV官網(wǎng)上選擇OpenCV for Linux版本下載,會(huì)得到一個(gè)像opencv-3.4.6.zip這樣的壓縮包,將它解壓到任意目錄下。解壓后進(jìn)入目錄,創(chuàng)建并進(jìn)入build文件夾,分別執(zhí)行cmake ..、make、sudo make install命令。至此,OpenCV編譯安裝完成,默認(rèn)安裝在/usr/local目錄下。

之后安裝Zbar,首先要在官網(wǎng)上下載Zbar的源碼,選擇的是Source Code版本里的ZBar-0.10,之后對(duì)其解壓縮。解壓后進(jìn)入文件夾,執(zhí)行./configure –prefix="",此時(shí)默認(rèn)安裝在/usr/local/bin目錄下。最后分別執(zhí)行make、sudo make install命令。

3 二維碼提取過(guò)程

本實(shí)驗(yàn)主要通過(guò)調(diào)用OpenCV中的函數(shù)實(shí)現(xiàn)二維碼的提取。其實(shí)現(xiàn)步驟為:(1)灰度轉(zhuǎn)化;(2)高斯平滑濾波;(3)中值濾波;(4)邊緣檢測(cè);(5)二值化;(6)閉運(yùn)算;(7)膨脹;(8)獲取碼的區(qū)域。

3.1 灰度轉(zhuǎn)化

做圖像處理時(shí),灰度圖是個(gè)二維矩陣形式,相對(duì)于RGB圖的三個(gè)維度更容易處理,消除顏色干擾。cvtColor()函數(shù)是OpenCV里的顏色空間轉(zhuǎn)換函數(shù),可以實(shí)現(xiàn)RGB顏色向灰度的轉(zhuǎn)換,代碼如下:

3.2 高斯平滑濾波

高斯濾波是一種線性平滑濾波,可以消除高斯噪聲。GaussianBlur()函數(shù)的作用是用高斯濾波器來(lái)模糊一張圖片,代碼如下:

3.3 中值濾波

中值濾波是一種非線性濾波方法,該方法在去除圖像噪聲的同時(shí),又能很好地保留圖像的邊緣細(xì)節(jié)。因此該方法非常適用于二維碼圖像的正確識(shí)別過(guò)程。代碼如下:

3.4 邊緣檢測(cè)

邊緣檢測(cè)是圖像處理和計(jì)算機(jī)視覺中的基本問題,常用來(lái)提取目標(biāo)區(qū)域的輪廓。圖像邊緣檢測(cè)可以大幅度減少圖像處理的數(shù)據(jù)量,有助于消除與二維碼識(shí)別不相關(guān)的背景圖像信息, 保留二維碼區(qū)域圖像信息。本文使用Sobel邊緣檢測(cè)算法,先分別求圖像X、Y方向的梯度,再將兩個(gè)方向的梯度結(jié)果進(jìn)行疊加。代碼如下:

3.5 二值化

3.6 閉運(yùn)算

3.7 膨脹

3.8 獲得碼的區(qū)域

4 二維碼識(shí)別過(guò)程

二維碼圖像提取完成后,就可以利用Zbar對(duì)二維碼進(jìn)行識(shí)別,其步驟如下:1)初始化Zbar掃描器,并設(shè)置;2)獲取圖像信息,定義掃描范圍;3)掃描二維碼,得到數(shù)據(jù)。

4.1 初始化Zbar掃描器,并設(shè)置

4.2 獲取圖像信息,定義掃描范圍

設(shè)置好Zbar掃描器之后,讀入前面提取到的二維碼圖像image,先轉(zhuǎn)化為灰度圖像,然后獲得灰度圖像行列像素及地址信息,并構(gòu)造一個(gè)Image對(duì)象,以此定義掃描范圍,代碼如下:

4.3 識(shí)別二維碼,得到數(shù)據(jù)

完成上述準(zhǔn)備工作后,通過(guò)調(diào)用圖像掃描器的scan()方法,開始讀取圖像中的二維碼數(shù)據(jù),并進(jìn)行顯示,代碼如下:

5 結(jié)語(yǔ)

本文首先簡(jiǎn)單介紹了二維碼的編碼、應(yīng)用、特點(diǎn)等概況,接著對(duì)識(shí)別二維碼的開發(fā)環(huán)境進(jìn)行配置,最后基于OpenCV實(shí)現(xiàn)了二維碼圖像的提取過(guò)程和基于Zbar實(shí)現(xiàn)了二維碼圖像的識(shí)別過(guò)程。經(jīng)過(guò)多張圖片的實(shí)驗(yàn),二維碼識(shí)別效果好、識(shí)別率高,多數(shù)常用的二維碼以及條形碼均可成功識(shí)別。但對(duì)于少數(shù)背景干擾信息復(fù)雜、存在多個(gè)二維碼的圖片,識(shí)別效果欠佳,這有待進(jìn)一步完善。

參考文獻(xiàn):

[1] 楊軍,劉艷,杜彥蕊.關(guān)于二維碼的研究和應(yīng)用[J].應(yīng)用科技,2002(11).

[2] 徐國(guó)輝,陳婕嫻.手機(jī)二維碼技術(shù)原理及應(yīng)用[J].信息與電腦,2013(1):18-19.

[3] 凌驍珺,王煜.二維碼技術(shù)的分析與研究[J].電腦知識(shí)與技術(shù),2018,14(21):47-49.

[4] 賈小軍,喻擎蒼.基于開源計(jì)算機(jī)視覺庫(kù)OpenCV的圖像處理[J].計(jì)算機(jī)應(yīng)用與軟件,2008(04):276-278.

[5] 毛星云.OpenCV3編程入門[M].北京:電子工業(yè)出版社,2015.

[6] Rafael C.Gonzalez,Richard E.Woods.數(shù)字圖像處理[M].2版.阮秋琦,譯.北京:電子工業(yè)出版社,2007.

【通聯(lián)編輯:代影】

主站蜘蛛池模板: 国产毛片高清一级国语| 重口调教一区二区视频| 青青操视频免费观看| 欧美日韩91| 日本手机在线视频| 亚州AV秘 一区二区三区 | 久久9966精品国产免费| 色噜噜狠狠色综合网图区| 亚洲免费成人网| 无码中文字幕精品推荐| 亚洲精品在线91| 91毛片网| 亚洲一级色| 欧美亚洲日韩不卡在线在线观看| 1769国产精品视频免费观看| 在线不卡免费视频| 黄色网站在线观看无码| 欧美精品xx| 无码视频国产精品一区二区| 欧美精品xx| 国产精品密蕾丝视频| 国产美女在线观看| 成人国产一区二区三区| 国产情侣一区| 99热这里只有精品在线播放| 97国产在线播放| 亚洲欧洲天堂色AV| 日韩精品久久无码中文字幕色欲| 久久精品无码国产一区二区三区| 亚洲第一色网站| 一级片一区| 国产又黄又硬又粗| 在线观看精品自拍视频| 熟女成人国产精品视频| 99久久国产综合精品女同| 91香蕉国产亚洲一二三区 | 国产成人福利在线| 国产激情第一页| 毛片网站免费在线观看| 欧美国产在线看| 欧美亚洲激情| 国产三级国产精品国产普男人 | 亚洲制服丝袜第一页| 免费又黄又爽又猛大片午夜| 日本人妻丰满熟妇区| 2020国产免费久久精品99| 国产一区二区三区精品久久呦| 久久性视频| 亚洲精品手机在线| 国产情侣一区二区三区| 欧美激情视频二区三区| 人妻无码一区二区视频| 亚洲AV无码不卡无码| 日韩中文无码av超清 | 欧美一区精品| 18禁黄无遮挡网站| 一本大道无码日韩精品影视| 亚洲天堂区| 久久99精品久久久久久不卡| 日韩麻豆小视频| 在线观看国产精品一区| 国产午夜福利在线小视频| 视频一本大道香蕉久在线播放| 亚洲国产精品美女| 国产成人综合日韩精品无码不卡 | 国产成人亚洲日韩欧美电影| 黄色片中文字幕| 精品无码视频在线观看| 亚洲毛片网站| 亚洲日韩国产精品无码专区| 福利一区在线| 视频二区欧美| 亚洲视频免费播放| 国产永久无码观看在线| 国产小视频在线高清播放| 超碰aⅴ人人做人人爽欧美| 中文字幕免费视频| 亚洲视频在线网| 亚洲精品黄| AV片亚洲国产男人的天堂| www.精品视频| 久久精品人妻中文系列|