LabVIEW條形碼識別(實戰(zhàn)篇—5)

條形碼(Barcode)是將寬度不等的多個黑條和空白,按照一定的編碼規(guī)則排列焚廊,用以表達一組信息的圖形標識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。條形碼可以標出物品的生產(chǎn)國、制造廠家滔迈、商品名稱等許多信息,因而在商品流通被辑、圖書管理燎悍、郵政管理、銀行系統(tǒng)等許多領域都得到廣泛的應用盼理。

條形碼可分一維和二維兩大類谈山。一維碼將寬度不等的多個黑條和空白按照一定的編碼規(guī)則排列,用來表示一組信息榜揖。常見的一維碼是由反射率相差很大的黑條和白條排成的平行線圖案勾哩,如下所示:

二維碼包括堆疊式條碼和矩陣式條碼兩大類,堆疊式條碼通過對多個一維碼堆疊構成举哟,矩陣式條碼則使用黑白矩形圖案表示數(shù)據(jù)。

條碼具有成本低迅矛、靈活易用妨猩、使用效率高和可靠性強等優(yōu)點。條碼制作僅僅需要印刷秽褒,識別設備的構造也很簡單壶硅,與其他自動化識別技術相比威兜,成本相當?shù)土l碼符號可以手工鍵盤輸入庐椒,條碼識別設備操作簡易椒舵,也可以和有關設備組成識別系統(tǒng)實現(xiàn)自動化識別,或者和其他控制設備聯(lián)系起來實現(xiàn)整個系統(tǒng)的自動化管理约谈。條碼的讀取準確率遠遠超過人工方式笔宿,平均每15 000個字符才會出現(xiàn)一個錯誤。此外棱诱,條碼的讀取速度很快相當于每秒40個字符泼橘。

1、一維碼識別

一維碼將多個寬度不同的豎直黑色條紋(Bar)和空白(Space)按一定的規(guī)則排列來表示信息迈勋,下圖顯示了一維碼的結構示意圖:

其中炬灭,條碼的空白區(qū)在左、右兩端靡菇,一般來說它必須是窄條寬度的10倍以上重归,如果邊緣寬度不夠,條碼讀取器就無法對其數(shù)據(jù)進行掃描厦凤。起止符是用于表示數(shù)據(jù)開始和結束的字符鼻吮,它根據(jù)條碼類型不同而不同。有些采用A泳唠、B和D狈网,有些則采用*。數(shù)據(jù)部分包括信息字符的條碼圖案笨腥,信息字符可以是數(shù)字拓哺、字母或其他特殊字符。校驗位用于和讀取值中計算得到的數(shù)據(jù)進行比較脖母,以校驗讀取值是否有錯士鸥,一般直接附在數(shù)據(jù)信息后。一維碼可由兩種或多種寬度的條紋和空白構成谆级,編碼時條紋和空白區(qū)域可以被離散或連續(xù)使用烤礁。

Nl Vision為一維碼的讀取提供了專門的函數(shù)IMAQ Read Barcode 2,它封裝了對條碼的復雜解碼過程肥照。該函數(shù)位于LabVIEW的視覺與運動→Machine Vision→Instrument Readers函數(shù)選板中脚仔,如下圖所示:

函數(shù)說明及使用可參見幫助手冊:

函數(shù)IMAQ Read Barcode 2可支持下表列出的各種類型的條碼。

由于交錯式Code25碼舆绎、Code39碼和Code93碼并無校驗位鲤脏,因此在讀取這幾類條碼時,可以關閉該函數(shù)的校驗參數(shù)。此外猎醇,Pharmacode較為簡單窥突,其他條碼極容易被誤讀為此類條碼,因此在使用IMAQ Read Barcode 2函數(shù)讀取其他類型的條碼時硫嘶,一般要禁用它對Pharmacode的支持功能阻问。

條碼圖像的分辨率、亮度漂移沦疾、條紋的灰度一致性和噪聲是影響IMAQ Read Barcode2讀取結果的幾個主要因素称近。條碼圖像的分辨率由條紋和空白區(qū)域的最小寬度來決定,一般來說它們的寬度不得少于3個像素才能被正確讀取曹鸠。圖像的亮度漂移太大時也會影響讀取結果的正確性煌茬。

通過一個一維碼讀取實例,了解一維碼的應用方法彻桃,程序設計思路如下所示:

While循環(huán)中的代碼會逐一讀取保存在Barcode文件夾中的各個圖像坛善,然后使用IMAQ Read Barcode 2從圖像中搜索各類條碼的位置,并對它們進行解碼邻眷;

讀取過程結束后眠屎,F(xiàn)or循環(huán)中的代碼會對條碼的結果進行解析,并將條碼的邊界矩形肆饶、條碼信息和類型以疊加圖層或數(shù)組的方式顯示到界面上改衩。

程序實現(xiàn)如下所示:

程序運行效果如下所示:

2、二維碼識別

二維碼是對堆疊式條碼和矩陣式條碼的統(tǒng)稱驯镊。堆疊式條碼通過堆疊多個一維條碼構成葫督,矩陣式條碼則在一個矩形空間內(nèi)通過黑白圖案的不同分布對數(shù)據(jù)進行編碼,如下圖所示:

一維碼僅使用一個方向上的條紋寬度代表數(shù)據(jù)板惑,通常最多包含30個字符橄镜。二維碼在水平和垂直方向上都包含數(shù)據(jù),最多可包含3000個字符冯乘。當數(shù)據(jù)量相同時洽胶,二維碼的尺寸要比一維碼小很多,因此它可印刷在空間有限的電子產(chǎn)品和其他小部件上裆馒。此外姊氓,矩陣式二維碼還引入了位置定位和容錯機制,不僅可使用方框喷好、L形框或專門的定位圖案可靠地探測條碼位置翔横,還能在條碼有損的情況下(如有污漬)正確還原信息。

下圖顯示了QR碼的典型結構示意圖梗搅,可以看出QR碼是一種典型的矩陣式二維碼主要由以下幾個部分構成:

空白區(qū)域(Quiet Zone)棕孙;

3個定位標識(Finder Pattern) ;

對準標志(Alignment Pattern)些膨;

定時標識(Timing Pattern) 蟀俊;

黑色和白色數(shù)據(jù)單元(Data Cell)和糾錯碼(Error Check and Correction Cell);

用于解碼的格式信息(Formatting Information)等订雾。

QR碼是矩陣式二維碼的一種肢预,其尺寸可包含21×21到177×177個數(shù)據(jù)單元。由于其右下角有對準標志洼哎,其他3個角上有定位標志烫映,因此可以從QR碼的任一方向對其進行快速讀取。QR碼內(nèi)置了錯誤檢查和糾正(ECC)機制噩峦,它可以通過標準Reed-Solomon方案對污點锭沟、脫墨和數(shù)據(jù)丟失等條碼損壞按照4種不同糾錯級別(L、M识补、Q族淮、H)進行恢復如下圖所示。數(shù)據(jù)的恢復率隨著所選的糾錯級別不同各異(L級為7%凭涂、M級為15%祝辣、Q級為25%、H級為30%)切油。

通過一個QR碼讀取的實例蝙斜,了解二維碼的應用方法,程序設計思路如下所示:

程序代碼結構比較簡單澎胡,在將包含QR碼的圖像讀入內(nèi)存后孕荠,就直接調(diào)用位于LabVIEW的視覺與運動→Machine Vision→Instrument Readers函數(shù)選板中的IMAQ Read QR Code函數(shù),從圖像中搜索單個或多個QR碼并對其進行解碼攻谁。

程序還通過記錄讀取前后的時間值來計算QR碼搜索和讀取過程的耗時稚伍。最后在圖像中用無損圖層標出QR碼所在位置,并顯示圖像巢株。

程序實現(xiàn)如下所示:

程序運行效果如下所示:

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末槐瑞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阁苞,更是在濱河造成了極大的恐慌困檩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件那槽,死亡現(xiàn)場離奇詭異悼沿,居然都是意外死亡,警方通過查閱死者的電腦和手機骚灸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門糟趾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事义郑〉粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵非驮,是天一觀的道長交汤。 經(jīng)常有香客問我,道長劫笙,這世上最難降的妖魔是什么芙扎? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮填大,結果婚禮上戒洼,老公的妹妹穿的比我還像新娘。我一直安慰自己允华,他們只是感情好圈浇,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著例获,像睡著了一般汉额。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上榨汤,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天蠕搜,我揣著相機與錄音,去河邊找鬼收壕。 笑死妓灌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蜜宪。 我是一名探鬼主播虫埂,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼圃验!你這毒婦竟也來了掉伏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤澳窑,失蹤者是張志新(化名)和其女友劉穎斧散,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摊聋,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡鸡捐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻裁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箍镜。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡源祈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出色迂,到底是詐尸還是另有隱情香缺,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布脚草,位于F島的核電站赫悄,受9級特大地震影響,放射性物質發(fā)生泄漏馏慨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一姑隅、第九天 我趴在偏房一處隱蔽的房頂上張望写隶。 院中可真熱鬧,春花似錦讲仰、人聲如沸慕趴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冕房。三九已至,卻和暖如春趁矾,著一層夾襖步出監(jiān)牢的瞬間耙册,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工毫捣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留详拙,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓蔓同,卻偏偏與公主長得像饶辙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斑粱,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容