-
1 # 怪俠1枝梅
-
2 # 麻辣SC
二維碼容量有多大取決於需求。我們現在看到和使用的二維碼是在條形碼的基礎上發展起來的。而其發展前景是非常廣闊的。隨著列印技術和掃碼技術提高,容量會不斷增加。比如顯示器,手機的解析度十年來提高了多少倍。十年後,二維碼會發展到什麼程度是無法預測的。科技發展的速度之快是無法預測的,也許就在我們談論這個問題的同時,實驗室裡不知又發生什麼新的變化。把問題留給科技工作者,答案會超出我們的計算和想象。
-
3 # 犍為真人
QR碼有大有小,但不能無限大。總共只有僅僅40種規格,最小的是21×21,最大的是177×177。下圖就是最小和最大的示例。
QR碼可以表示成不同型別。比如純數字(0到9),字母(字母數字和少數標點,其實就是網址),日文(誰讓QR是日發明的呢),中文,二進位制,等等。
QR碼最多隻能表示7089個純數字,或者4276個字母(形如網址的字元數),或者2953位元組的二進位制(相對於才2.9KB)。還有日文中文等最多表示數就不再列出。可以看出,數量是很小很小的!要知道一張照片至少也得有幾十KB,一首MP3歌曲4MB左右。而QR碼還不到5KB!
但是,理論只是理論。實際上是難以做到的。因為掃碼二維碼需要用攝像頭或掃描器。簡單點,就拿手機說吧。手機攝像頭是有最大解析度的,比如800萬畫素,1200畫素等等。800萬畫素手機,最多也就只能識別800萬個點。它最多表示800萬個二進位制位,也就是100萬字節(一位元組等於8位),基本等於1M位元組,即1MB。小的可憐吧!
而且上面的討論中還僅僅是最理想的情況。800萬畫素根本不可能剛好掃描清楚800萬個點(方塊)。還有二維碼的核心技術是糾錯機制或者叫容錯機制。這種機制必須允許內容有冗餘,以便錯誤時可以恢復。冗餘就意味著1M個位的內容要超過1M個方塊去表示。絕對不可能一一對應。
上面一段沒整明白沒有關係,我們就拿最理想最極端的極限來說。順便普及一下知識。解析度就是能識別的最大畫素。比如手機攝像頭拍出來的照片是4000×3000畫素,那麼就等於1200萬畫素,約等於12M。其中1M=1024K,1K=1024。1個畫素如果用來掃描二維碼,理想極限是1個方塊,即一個二進位制位。8個位等於1個位元組。所以12M畫素(1200萬畫素)極限能掃描出1.5MB的內容。像什麼螢幕解析度也是一樣的道理。比如1024×768。大家也可以自己算算。
-
4 # 鄢知渝
40X40大小的矩形有1600個元素,用二進位制來作為儲存方式的話,就可以儲存1600位(bit),8個bit構成1個"位元組(Byte)",1個位元組可以儲存1個英文字母或者半個漢字,換句話說,1個漢字佔據2個位元組的儲存空間。1600/8=200位元組,/2=100個漢字.
本回答轉自網路
-
5 # 隔壁家的王老吉
市面上常用的二維碼就幾種編碼規則,但二維碼有上百種編碼規則,不同的規則尺寸有不同的儲存量,正好本人的畢業設計就是做的二維碼,下面分享一下里面的核心部分,也讓大家瞭解一下二維碼的原理,鄭重宣告:此全部為本人智慧結晶,版權所有,切勿盜版剽竊,有興趣了關注交流。
摘 要
以二維碼為研究物件,結合影象掃描識別技術,設計並實現了一種自定義編碼規則的二維碼PC端生成及手持式識別裝置。系統利用Microsoft Visual Studio 2017程式設計產生二維碼,透過手持式裝置的OV7725攝像頭獲取二維碼影象,經過影象處理、識別和解碼後得到二維碼包含的資訊,並透過觸控式螢幕顯示。系統綜合運用影象灰度化、二值化、閥值分割等影象預處理方法,用STM32F103ZET6微控制器完成了資訊的編碼、影象生成、影象的採集、識別和解碼的功能。
ABSTRACT
The object of this paper is the two-dimensional code which combined the image scanning and recognition technology, and PC sofeware of two-dimensional code that follows user-defined coding rule and hand-held recognition device can be generated. The system uses Microsoft Visual Studio 2017 programme to generate two-dimensional code and obtain two-dimensional code image by OV7725 camera of the hand-held device, after finishing a series of image processing, recognition and decoding, information from two-dimensional code will be displayed by touching creen. The system completes the function of coding, image generation, image acquisition, recognition and decoding of information,with image processing methods of comprehensive application of graying,binarization and threshold segmentation to realize the purpose of the two-dimensional code recognition system by STM32F103ZET6 singlechip.
Key words: Two-dimensional code;OV7725camera;STM32F103ZET6
2 設計要求及方案選擇
2.1 設計要求
2.2 系統的工作原理
二維碼生成識別系統是編解碼規則、數字影象處理技術、嵌入式應用技術為基礎的一種二維碼系統,由二維碼生成軟體和手持式裝置組成。它用一種自定義的不同於當前市場流行的編碼規則,根據二維碼的基本要求和原理,透過C++語言在Microsoft Visual Studio 2017中編寫能一鍵生成二維碼的.exe應用軟體,將資訊生成二維碼,然後利用OV7725攝像頭獲取生產的二維碼影象,在IAR Embedded Workbench環境程式設計對影象的採集、識別、解碼的研究,綜合運用影象灰度化、二值化、閥值分割等影象預處理方法,以STM32F103ZET6微控制器進行實時處理,經過影象處理識別解碼後得到二維碼包含的資訊,控制觸控式螢幕顯示解碼資訊,並透過液晶屏顯示出來。最終實現資訊二維碼的生成識別的功能。
系統的工作原理步驟圖如圖2.1所示。3.1 硬體總體設計方案
本系統的硬體部分是在二維碼的識別環節,即手持式裝置,手持式裝置是基於STM32F103ZET6微控制器控制攝像頭和觸控式螢幕,完成資訊採集、資訊解碼識別和資訊顯示的功能,實現二維碼的資訊識別。硬體系統總體框圖如圖3.1所示。4 軟體部分的設計與實現
二維碼的基本特徵是顯示一段編碼資訊的由黑白畫素塊組成的正方形(也可為其他多邊形,目前大多基本都是正方形),其有三個角處為定位區,中間有一個或多個輔助定位區。本系統根據二維碼的上述基本特徵,設計如圖4.1所示的二維碼佈局圖。 其中包括三個邊角定位區、一個輔助定位區外,將其他區域分為位元組資訊編碼儲存區、位元組數正儲存與加密區、位元組數負儲存與加密區和隨機程式碼生成區四個部分。如下圖4.2所示。 介面分割槽詳細量化
(2)三角處定位區:70px*70px的正方形區域,即7個黑白畫素點的寬度,其中外圍一畫素寬度的一圈黑畫素帶,緊接內層一畫素寬度的一圈白畫素帶,最內層為三畫素寬度的正方形且均是黑色畫素組成,如下圖4.3所示。圖4.3 三角定位區量化圖
圖4.4 輔助定位區量化圖
3)輔助定位區:如上圖4.1.1.4所示,50px*50px的正方形區域,即5個黑白畫素點的寬度,其中外圍一畫素寬度的一圈黑畫素帶,緊接內層一畫素寬度的一圈白畫素帶,最內層為一個黑畫素點的正方形。在位置排布上,左下角和右上角的定位區的最外層的黑畫素變的水平座標與豎直座標的延長線的交織區域,為輔助定位區的最中間的黑畫素塊。(4)位元組數正儲存區1、位元組數正儲存區2:如上圖4.2所示,均為160px*70px的矩形位元組儲存區,因為定義的一個黑白畫素塊為10px*10px的正方形,則這兩處的儲存區可顯示的黑白畫素塊數為: (160px/10px)*(70px/10px)=112塊則可顯示的位元組數為: (160px/10px)*(70px/10px)/8=112/8=14位元組即二維碼儲存資訊的位元組數和編碼區域的可操作的有效位元組為14個。(5)位元組資訊編碼儲存區:如上圖4.2所示,其有效區域為圖示的黃色矩形區減去紅色的小矩形區的面積大小,即240px*160px的矩形面積減去90px*10px的矩形面積,因為定義的一個黑白畫素塊為10px*10px的正方形,則這兩處的儲存區可顯示的黑白畫素塊數為:(240px/10px)*(160px/10px)-(90px/10px)*(10px/10px)=375塊則可儲存的位元組數為: ((240px/10px)*(160px/10px)-(90px/10px)*(10px/10px))/8=375/8=46位元組即二維碼能儲存資訊的容量為46個位元組。
下面是編碼規則原理圖
全部是自己設計作圖下面附一些實物裝置圖
-
6 # 大小菠蘿
2.按照40*40的標準來算的話,物理容量約200個位元組.
3.2中的物理容量需要去掉容錯,校驗和左上/右上/坐下的定位符,剩下的才是實際容量.
-
7 # 震旦講武堂
QR碼的規範中,對其圖案的面積有詳細的規定。QR碼分為version 1到version 40共40種類型。其中version 1使用的是21乘21的點陣;version每增加1,點陣邊長就會增加4,直至version 40變成177乘177的點陣:
其所能容納的資訊量(按最低糾錯級別算),version 1為152 bit,version 40為23648 bit(即維基上說的7089個數字或4296個字母。注意bit到字元數的換算過程中,還需要考慮識別符號、糾錯碼等演算法必需的資訊。由此可以看出,資訊量和二維碼面積是密切相關的。如果想在version 1的QR碼中編碼大於152 bit(41個數字)的資訊,依據規範是不可能的,但這種不可能是演算法上的不可能,並不等同於題目中所描述的“耗盡”,其中並沒有逐漸消耗的過程。
至於為什麼規範只到version 40為止,沒有更大的QR碼,估計是作者認為過於複雜的影象所需要的識別能力的提升已經超出了其中的資訊所能帶來的益處(參見上面那個version 40的QR碼影象),畢竟我們使用二維碼不是用來把金庸的小說編碼進去。至於算法理論上能否支援更大的QR碼,我現在並不確定。
-
8 # 天極網
國外對於二維碼技術的研究開始於20世紀80年代末,在符號表示技術上已經研製出多種碼制,比較常見的有PDF417、QR Code、Code 49、Code 16K、Code One等。當時,二維碼的標準也是定在了資訊密度(包含資訊的多少),比如PDF417的資訊密度是一維碼CodeC39的20多倍。另外,中國對二維碼的研究開始於1993年,在國外的技術基礎上,指定了兩個二維碼的國家標準:二維碼網格矩陣碼(SJ/T 11349-2006)和二維碼緊密矩陣碼(SJ/T 11350-2006)。
通常我們口中的二維碼一般是指QR Code,也就是支付寶、微信支付、火車票等通用的二維碼格式。但是,二維碼的格式可以說多種多樣,從一維碼到二維碼再到三維碼,還有條形碼等,而二維碼又分為很多種,包括Data Matrix、MaxiCode、Aztec、QR Code、PDF417、Vericode、Ultracode、Code 49、Code 16K等,不同的二維碼制式,在不同的領域有著不同的應用。
嚴格意義上來講,三維碼比二維碼所包含的資訊量更大,而二維碼則必一維碼包含的資訊量大。比如三維碼在相同的編碼面積上,其最大可表示的資料糧食PDF417碼的10倍以上。此外不同的排列方式也是導致包含資訊量大小的一個重要標準。從排列方式上來看,二維碼又分為堆疊式和矩陣式,其中堆疊式在形態上是由多行短截的一維條碼堆疊而成;而矩陣式二維碼以矩陣的形式組成,以點表示二進位制的“1”,用空表示二進位制的“0”。
由於所包含的資訊量大、可靠性高、保密防偽性強等優勢,QR Code被廣泛應用。所以,通常意義上說的二維碼就是QR Code。QR Code是Denso公司在1997年研製的一個矩陣二維碼。這個二維碼制式的資料表示方法是,深色模組表示二進位制“1”,淺色模組表示二進位制“0”,分為4中糾錯級別,分別是L級、M級、Q級、H級。QR Code被廣泛應用,主要還是在於其儲存資料的能力,其中40-L級的數字資料可達7069個字元,字母資料可以儲存4296個字元,8位位元組資料可以儲存2953個字元,另外漢子資料可以儲存1817個字元。
QR Code各區域代表內容
資訊量大小與什麼有關?
另外,二維碼的容量跟二維碼圖形的大小和顏色都有關係的。一般常見大小的二維碼影象中,雙色單層(如黑白)的一般是數十K的容量,彩色(24色)單層的能夠達到 1~2MB 的容量。 256色三層的大型二維碼,甚至能夠達到 1TB 的變態容量。
但是,理論只是理論,實際上是難以做到的,因為影響二維碼儲存資料的還有掃描裝置。比如,手機攝像頭是有最大解析度的,比如800萬畫素、1200畫素等。其中800萬畫素手機,最多也只能識別800萬個點,最多表示800萬個二進位制位,也就是100萬字節,基本等於1M位元組,即1MB。
-
9 # 條碼標籤列印軟體
從1997年到2012年,中國陸續釋出了5個二維碼國家標準:PDF417,QRCode(快速響應碼),漢信碼,GM碼(網格矩陣碼)和CM碼(緊密矩陣碼)。其中QRCode因為具有識讀速度快、資訊容量大、佔用空間小、保密性強、可靠性高的優勢,是目前使用最為廣泛的一種二維碼。QRCode 呈正方形,只有兩種顏色,在4個角落的其中3個,印有像“回”字的的小正方圖案。QR碼是屬於開放式的標準,QR碼的規格公開,而發明者的專利權益不會被執行。
-
10 # 兔醫
40X40大小的矩形有1600個元素,當下計算機主流是二進位制。那麼就用二進位制來作為儲存方式的話,就可以儲存1600位(bit),而每8個bit構成1個"長位元組(Byte)",1個位元組可以儲存1個英文字母或者半個漢字,換句話說,1個漢字佔據2個長位元組的儲存空間。1600/8/2=100個漢字.
回覆列表
二維碼自身資訊量越多,所需的畫素點越多;畫素越多,越難分辨和解碼,因為掃碼裝置(攝像頭)有分辨上限。800萬(8M)畫素的攝像頭無法掃出16M畫素(4096*4096)的二維碼。即使4M二維碼也難。所以目前可用的二維碼都不會太大,比如某二維碼生成網站最大隻提供800*800(約0.6M)的二維碼生成服務。(注意這裡的M是指畫素點數量,不是圖片的檔案大小)解決大資訊量生成二維碼的辦法之一是生成“高階”二維碼——活碼,『透過短網址指向儲存在雲端的資訊』(via網路)。也就是說,活碼本身的資訊量只是一個短網址,它指向的網頁(雲端)資訊量可以無限多,然而活碼自身資訊量不多,容易識別。