二維碼的秘密

二維碼的秘密

來自專欄地理科學探討4 人贊了文章

不知從什麼時候起,我們的生活開始充斥著大大小小的二維碼,添加好友需要二維碼,移動支付需要二維碼,網頁鏈接需要二維碼······這個神奇的黑白小框究竟隱含了哪些秘密,它又是實現它的功能的呢?

要認識二維碼,首先要從一維碼說起,一維碼也就是條形碼。相對於二維碼,條形碼其實更早地進入了人們的視野範圍。條形碼最早應用在工業管理領域,綠箭香口膠是第一個打上條形碼的商品。這個簡單而神奇的應用是美國人開了先河,美利堅民族的開創能力確實值得敬仰。 而中國則在1991年加入國際商品編碼協會,在1992年開發第一套POS信息條形碼採集系統,這標誌著我國具備使用條形碼的基礎條件,而後隨著大超市在中國的布局,條形碼便進入了中國人的日常生活中。

每一個標準包裝的商品,都有一個條形碼。

這個條形碼,說白了,就是商品編碼。以上這個條形碼錶達的僅僅是它下面的數字6920152461010,而這一組數字代表的就是商品的編碼,當然,這一組數字包含了產地國、生產商、產品編碼等信息。你到超市購物,如果收銀員掃描失敗,那麼她在鍵盤上敲入的也正是條形碼下面的數字。

這組數字僅僅是商品編碼,它並沒有記錄商品的價格。至於收銀人員掃描後能夠獲取得到商品的價錢,那是因為掃描過條形碼之後,商店貨品管理系統定位到該商品,再反饋價格數據。

那麼這一個條形碼是如何表達商品編碼 6920152461010 這組數字的呢?我們看到條形碼是由一組規則的黑白條、空組成,不同粗細的「條」、「空」組合,便構成了不同的數字編碼。我們來看一下「9」這個數字,它是由一個細「條」+一個「細」空+一個粗「條」 按順在排在一起來表達。同樣,其他的數字也是由類似的條空組合去構成。

總所周知,黑白是兩個走在兩個不同極端的顏色,白色能夠反射各種波長的可見光,而黑色能夠吸收各種波長的可見光。也就是說 黑色和白色對光線反射的強弱是有顯著的差異的,條形碼正式利用了黑白顏色對光波的吸收和反射顯著差異的特點 條形碼掃描儀則是一個可以發射可見光和接收其反射信號的儀器。在讀取條形碼的時候,它先向條形碼發射一組可見光,這一組光照到條形碼上,再反射給掃描儀上面的接收器,接收器根據其反射回來的光信號的強弱來識別條形碼上的「條」、「空」信息:條形碼上究竟有多少「條」和多少「空」、各個條空的順序是如何排序的、以及各個條空的寬度。這些信息組合在一起,其實就是一組數字,計算機則通過掃描儀提供的信息,來解讀條形碼上面的數字編碼,從而進行定位商品。

本文要寫的是二維碼,但我們花了很大的筆墨和揭露條形碼原理,其實二維碼原理和條形碼原理是一樣的,只是二維碼在信息的儲存量方面比條形碼大得多,而且還具有糾錯能力、識別率高等優勢。可以說二維碼是條形碼的升級版,只有充分理解條形碼的原理,才能更好的讀懂二維碼。

條形碼是由不同粗細的條空組合來記錄信息,通過「條」和「空」的長度去記錄信息,僅僅從一個維度去記錄,能夠儲存的信息是相當有限的。而二維碼則是若干的黑白小方塊去記錄。不同的黑方塊和白方塊組合堆砌在一起,從而構成了一個編碼序列。由於它從兩個維度去記錄信息,因而信息儲存量更大。條形碼是線性的,而二維碼則是一個矩陣,顯然不在一個二次元上。二維碼的一個小框內所包含的信息,如果要用條形碼來表示,可能條形碼的長度需要去到兩三米長,這顯然是不現實的,這也是為什麼在今天充斥著生活的是二維碼而不是條形碼,但並不是說條形碼沒有其他方面優勢,條形碼相對簡單,從一個維度去識別,讀取信息也更快,它在庫存管理、商品信息採集、超市運營等方面還會有廣泛的應用。

所有的二維碼都不一樣(儘管在你看來每個二維碼長得都差不多,但是在計算機眼裡,每一張臉都不一樣),不過每個二維碼都有一個共同點:就是左上、右上,和左下共有三個回字形方塊,這三個回字形方塊其實用來是識別用的,手機的攝像頭其實相當於一個掃描儀,當它掃描到兩個維度上距離相等的三個回形方塊,便識別到這是一個二維碼,從而解讀這個二維碼框內的信息。

只要手機能夠掃描到這三個會形方塊,它便能定位得到這是一個二維碼,便會咬住不放進行解讀,而不管你的二維碼是正的,反的,歪的,斜的,不信你可以試著長按倒過來的山人紅二維碼,依然不會影響你關注公眾號。

weixin.qq.com/r/Qkh9ZST (二維碼自動識別)

二維碼都會有糾錯能力,也就是說二維碼即便存在小範圍的缺損,或者污損,並不會影響二維碼的讀取功能,但有三個地方是不能動的,那就是上面說到的三個回形方塊。由於二維碼通過二維空間去記錄信息,信息儲存量可以很大,因而它也預留了足夠的空間去進行糾錯。其實在這個二維碼方框裡面,同時存放了數據嗎和糾錯碼,而糾錯碼就是給二維碼糾錯用的。通常來說,二維碼的物理尺寸越大,它能夠放得下的黑白小方塊越多,也就包含更多的糾錯碼,它的糾錯水平就越高。 也就是說同樣一個微信名片,當你選擇生成的二維碼尺寸越大的時候,它在缺損的情況下能夠被讀出來的幾率就越高。

關於二維碼,你讀懂了沒有?

本專欄及山人紅微信公眾號將繼續和你探討GPS導航的秘密。衛星是怎樣知道你的位置的?它是用望遠鏡盯著你嗎?高德地圖上的林志玲為什麼能夠那麼清楚路線?百度地圖為什麼能夠對堵車路段了如指掌? 請關注山人紅微信公眾號,與你一起解讀哪些讓人費解而又古怪的問題。


推薦閱讀:

動態二維碼製作

TAG:二維碼 | 二維碼應用 | 二維碼掃描 |