2024-03-25 分類: 網(wǎng)站建設(shè)
二維碼到底是怎么工作的呢?又是怎么被手機所識別的呢?今天我們就來聊聊二維碼的故事。
二維碼發(fā)展過程
其實早在1970年,美國易騰邁公司前身Interface Mechanisms就已經(jīng)發(fā)明了二維碼,但直到近幾年才普及起來。二維碼用特定的幾何圖形按照一定規(guī)律,在平面上印制出黑白相間的矩形方陣,用來記錄數(shù)據(jù)符號信息。它的原理和它的哥哥一維條形碼比較像,但一維條形碼的使用受到了較大的限制,有時甚至變得毫無意義。另外,要用一維條形碼表示漢字的場合,顯得十分不方便,且效率很低,所以高密度、高可靠性的二維碼就應(yīng)運而生了。二維條碼是大容量、高可靠性信息實現(xiàn)存儲、攜帶并自動識讀的最理想的方法。
從上世紀(jì)90 年代初,中國物品編碼中心將二維碼技術(shù)引進(jìn)中國,隨著國外二維碼制在中國不斷拓展,人們逐漸發(fā)現(xiàn)了一個問題,由于PDF417、QR等國外碼制沒有考慮中國漢字編碼的問題,在我國使用時,經(jīng)常會出現(xiàn)中國漢字信息表示效率不高等問題。在2003年至2005年,中國物品編碼中心與我國網(wǎng)路暢想、意銳新創(chuàng)公司共同研發(fā)的漢信碼碼制,正式開啟了中國二維碼的新篇章。隨著漢信碼技術(shù)的發(fā)展成熟與國家標(biāo)準(zhǔn)的制定,我國二維碼產(chǎn)業(yè)和應(yīng)用發(fā)展有了自主知識產(chǎn)權(quán)二維碼碼制標(biāo)準(zhǔn)的支持,適合中國需求的二維碼民族產(chǎn)業(yè)開始起步。
到了今天,隨著iPhone、Android等智能手機軟硬件平臺的發(fā)展成熟,騰訊公司、百度公司等互聯(lián)網(wǎng)巨頭開始在二維碼上投入巨額資源研發(fā)和推廣,二維碼的移動應(yīng)用市場被培養(yǎng)起來,公眾對于二維碼,特別是手機二維碼認(rèn)知逐漸成熟。用于手機識讀的二維碼廣泛出現(xiàn)在廣告、網(wǎng)頁、招牌、票據(jù)等載體上,手機“掃一掃”,實現(xiàn)移動獲取信息或上網(wǎng)、添加微信、微博關(guān)注等應(yīng)用,已經(jīng)走入千家萬戶,悄無聲息的改變著我們的生活。
二維碼是怎么生成的
二維碼其實就是由很多0、1組成的數(shù)字矩陣。二維碼是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號信息的;在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個與二進(jìn)制相對應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,通過圖象輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理:它具有條碼技術(shù)的一些共性:每種碼制有其特定的字符集;每個字符占有一定的寬度;具有一定的校驗功能等。同時還具有對不同行的信息自動識別功能、及處理圖形旋轉(zhuǎn)變化等特點。二維條碼/二維碼能夠在橫向和縱向兩個方位同時表達(dá)信息,因此能在很小的面積內(nèi)表達(dá)大量的信息。
簡單的說,二維碼就是把你想表達(dá)的信息翻譯成黑白兩種小方塊,然后填到這個大方塊中。有點類似我們中學(xué)的答題卡,就是把我們的語言翻譯成機器可識別的語言,說白了就是把數(shù)字、字母、漢字等信息通過特定的編碼翻譯成二進(jìn)制0和1,一個0就是一個白色小方塊,一個1就是一個黑色小方塊。
當(dāng)然這其中還有很多糾錯碼,假如需要編碼的碼字?jǐn)?shù)據(jù)有100個,并且想對其中的一半,也就是50個碼字進(jìn)行糾錯,則計算方法如下。糾錯需要相當(dāng)于碼字2倍的符號,因此在這種情況下的數(shù)量為50個×2=100碼字。因此,全部碼字?jǐn)?shù)量為200個,其中用作糾錯的碼字為50個,也就是說在這個二維碼中,有25%的信息是用來糾錯的,所以這也就解釋了二維碼即使缺了一點或者變皺了也一樣能被識別。有些朋友可能會問,為什么每個二維碼上都會有三個黑色大方塊呢?那就要涉及下面的內(nèi)容:手機是如何識別二維碼的。
二維碼怎么被手機識別的?
由于不同顏色的物體,其反射的可見光的波長不同,白色物體能反射各種波長的可見光,黑色物體則吸收各種波長的可見光.所以當(dāng)攝像頭掃描黑白相間的二維碼上時,手機利用點運算的閾值理論將采集到的圖象變?yōu)槎祱D像,即對圖像進(jìn)行二值化處理,得到二值化圖像后,對其進(jìn)行膨脹運算,對膨脹后的圖象進(jìn)行邊緣檢測得到條碼區(qū)域的輪廓。
然后經(jīng)過一項灰度值計算公式對圖像進(jìn)行二值化處理。得到一幅標(biāo)準(zhǔn)的二值化圖像后,對該符號進(jìn)行網(wǎng)格采樣,對網(wǎng)格每一個交點上的圖像像素取樣,并根據(jù)閾值確定是深色“1”還是淺色“0”,從而得到二維碼的原始二進(jìn)制序列值,然后對這些數(shù)據(jù)進(jìn)行糾錯和譯碼,最后根據(jù)條碼的邏輯編碼規(guī)則把這些原始的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)。
上文中我們提到的三個大黑方塊起什么作用呢?我們在使用手機掃描的時候無論是什么方向,都能夠正確識別二維碼的內(nèi)容,就是因為手機通過三個大黑方塊識別出二維碼正確的方向。上述識別過程說起來分很多步驟,但在實際生活中,也就是兩三秒的工夫,非??欤?/p>
分享題目:二維碼的發(fā)展和工作原理
本文鏈接:http://jinyejixie.com/news49/321699.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、網(wǎng)站收錄、微信小程序、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容