當前位置:首頁 » 操作系統 » 二維碼解碼源碼

二維碼解碼源碼

發布時間: 2022-04-24 04:06:31

❶ C語言或C++編寫二維碼的解碼部分詳細的源代碼及說明

1、二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀取。通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。

2、常式:

<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcode*pQRcode)

{

T_PixelDatasg_tOriginPixelDatas;

T_PixelDatasg_tZoomPixelDatas;

//intiZoom;

inti;

g_tOriginPixelDatas.iWidth= pQRcode->width;

g_tOriginPixelDatas.iHeight=pQRcode->width;

g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;

g_tOriginPixelDatas.aucPixelDatas= pQRcode->data;

/*

if(pQRcode->version< = 1)

{

iZoom= 2;

}

else

{

iZoom= 2;

}

g_tZoomPixelDatas.iWidth = pQRcode->width*iZoom;

g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;

g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;

g_tZoomPixelDatas.aucPixelDatas= malloc(g_tZoomPixelDatas.iWidth* g_tZoomPixelDatas.iHeight);

if(g_tZoomPixelDatas.aucPixelDatas== NULL)

{

printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed ");

return-1;

}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);

#if 0

printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ", g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);

for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)

{

printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);

}

printf(" ");

#endif

*/

Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);

return 0;

}

因為stmf429運行起來後內存不夠,這里不用申請內存再擴充放大二維碼數據的方法,而是直接描點。所以這里注釋掉了放大部分。

❷ 急求!!!用MATLAB實現QR二維碼圖像識別及解碼

內部構造,識讀器的內部構造就像一部特殊的CMOS數碼相機,關鍵是它採集的二維碼圖像,需要後台的識讀軟體去識別解析,解析軟體解析效果差的話,圖像質量再好也有解析不了得時候,識讀器採集效果差的話,再好的解析軟體也有解析不出來的時候,二者相符相成,可以到網上多查查資料。

❸ 求二維碼QR編碼的程序源碼

我有成品 QQ郵箱是多少?

❹ Android二維碼識別源碼,可有多種實現方式

這里簡單介紹一下ZXing庫。ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其他語言的埠。Zxing可以實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。該項目可實現的條形碼編碼和解碼。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39碼、93碼。ZXing是個很經典的條碼/二維碼識別的開源類庫,以前在功能機上,就有開發者使用J2ME運用ZXing了,不過要支持JSR-234規范(自動對焦)的手機才能發揮其威力。
下面是ZXing的demo運行,我這里創建了一個二維碼,內容是我博客的網址,大夥可以用微信的掃一掃功能,試一下。就可以直接打開我博客。

2、ZXing庫主要類
下面給大家介紹一下,ZXing庫裡面主要的類以及這些類的作用:
CaptureActivity。這個是啟動Activity 也就是掃描器。
CaptureActivityHandler 解碼處理類,負責調用另外的線程進行解碼。
DecodeThread 解碼的線程。
com.google.zxing.client.android.camera 包,攝像頭控制包。
ViewfinderView 自定義的View,就是我們看見的拍攝時中間的框框了。

3、使用ZXing生成二維碼
下面針對二維碼生成和解析做個簡單介紹,至於詳細的使用方法,建議大家還是自己看看源碼,使用起來很簡單,不過這個開源項目的代碼,值得好好看看。首先給出二維碼生成的方法:
View Code
上面就是二維碼生成的方法介面,如果你只是使用者方法,很簡單,只要傳入一個URL即可,就像我截圖裡面一樣,傳入一個合法的網址即可。或者像現在一些移動APP的推廣,把APP下載地址轉為二維碼,只要掃一下就可以下載相應的APP。這個也是目前比較流行的APP的推廣方式。
上面代碼做的事情不多,主要是調用ZXing庫裡面QRCodeWriter().encode的方法對我們傳進去的URL進行編碼,具體如何編碼,這個我這里就不詳細說,有興趣可以看ZXing的源碼。文章最後會給出ZXing的源碼和例子代碼。

4、掃描二維碼獲取信息
掃描獲取二維碼信息的工作稍微復雜一些,主要是需要編寫Camera的使用,這個跟我們一般使用Camera一樣,需要使用Surfaceview作為預覽,這一部我這里就不說了,這個應該不是太復雜。對於使用過Camera做預覽的朋友,應該是挺簡單的事情。獲取二維碼數據的關鍵處理是在Camera的自動對焦回調函數哪裡,調用ZXing的解碼介面。
View Code
這里稍微多說一句,由於解碼需要一定時間,所以ZXing的解碼調用,都是使用了Handler作為線程通信機制,解碼的工作都是放在獨立線程裡面使用的,如果你直接在主線程解碼,恐怕ANR問題是避免不了。
View Code
上面是解碼的線程處理不同狀態的時候需要注意的地方,我們這里只看獲取圖像成功的地方,成功獲取圖片解碼的實在DecodeThread裡面實現,DecodeThread裡面解碼成功後,會把數據序列化,然後保存到Bundle裡面,我們可以直接通過Bundle的序列化,獲取到圖片數據。同時會把解碼後的結果保存到MSG裡面,然後就可以根據實際情況進行處理,例如上面代碼,解碼成功後,會調用一個處理函數:
View Code
上面就是整個二維碼的解碼流程,裡面因為涉及很多Camera的使用,所以你如果需要使用二維碼識別,需要注意一下你的程序需要申請下面的許可權,一般的Camera使用以及Camera的自動對焦等。
View Code
5、結語
上面就是生成和識別二維碼的關鍵流程和代碼,有興趣的朋友可以自己查看ZXing的源碼,裡面有很多圖像分析的知識可以學習。具體使用也可以參考我下面給出的Demo。二維碼對於現在移動開發來說很是很常用的技術,所以有空可以了解一下,說不定什麼時候就用上了。另外,ZXing庫除了二維碼外,其實對於條形碼也是支持的,只是我這里沒有介紹。有需要的自己去看看源碼即可。

❺ 誰有C語言或C++編寫的二維碼解碼軟體的源程序

這個程序是運行在什麼平台的?
二維碼的輸入來自攝像頭還是來自圖片?

目前來看,網上有一些開源的跨平台的開發包,需要安裝相應的庫才能使用。不可能像你想像的那麼簡單給你發個源代碼你就立刻能用了。

比較實用的一個開發包是Zbar,開源不收費。親測在Win7,WinXP環境下可以成功編譯運行。
http://zbar.sourceforge.net
去這里下載他的SDK,裡面有相應的常式,根據你的具體運行環境和具體的需要來修改吧。
祝你好運

❻ Android ZXing 二維碼,編碼和解碼的演算法是什麼演算法,還是用bitmap生成二維碼圖片那個演算法是什麼,謝謝

二維碼分兩類:行排式二維條碼和矩陣式二維碼,已矩陣式二維碼中QRcode為例。
QRcode是日本Denso公司開發的,目前網上有其二維碼信息組件QRcode.dll,該組件可對輸入的字元串進行QR編碼
調用介面定義:
STDMETHOD
IMPCQREncoder:Encode(BSTR bstrEncodeData,
BYTE byErrorCorrectionLevel,
BOOL bISOI2EC,
BSTR *pbstrResultStream)
輸入參數說明:
BSTR bstrEncodeData: 待編碼的字元串,注意一個中文字元對應兩個位元組,對應漢字內碼
BYTE byErrorCorrectionLevel:編碼的糾錯級別選擇,0表示糾錯級別L(7%),1表示糾錯級別M(15%),2表示糾錯級別Q(25%),3表示糾錯級別H(30%)
BOOL bISOIEC:採用的編碼標准,取值為TRUE表示採用國際標准(ISO/IEC18004),FALSE表示采國家標准(GB/TGB/T18284-2000)
輸出參數說明:
BSTR *pbstrResultStream:輸出字元串,字元串由三部分組成,(注意,每個字元為一個位元組)
第一部分三位元組,為編碼後QR符號的寬度,
第二部分三位元組,為編碼後QR符號的高度,
第三部分為編碼後的QR符號,長度為QR符號寬度與QR符號高度的乘積。
舉個例子,對字元串「01234567」
編碼後得到返回值為:
「011011111111101001100100010」
字元串「01234567」經二維碼信息編碼後應理解為:
21個單位寬(前三個字元『021』)、21個單位高的正方形單位矩陣,
可以根據矩陣中的每一個元素值(0或1)來生成二維碼圖片對應位置上的像素顏色,假設定0值為白色,1值為黑色,每個單位(即021後面的字元)表示1個像素,那麼當前二維碼圖片應為21像素寬、21像素高的黑白相間的圖片。我想用編碼後的信息,以這種定義生成圖片的演算法應該還是容易實現的。另外,QR編碼具體演算法,建議還是看看QR編碼規範文檔,如果你需要,我可以傳給你。

❼ 求一個關於QR二維碼識別與檢測程序

你直接用微信的二維碼識別程序就OK了 ,或者去下載一個。 有的是

❽ 求一個可以解碼微信二維碼的源碼

我這邊有一個是生成二維碼的,就是根據不同的條件來生成不同的二維碼,比如說QQ,電話,網站等等,你需要解二維碼,你可以逆向查看下。很簡單的
演示地址:http://tool.52codes.net/wwm.html

❾ 怎麼製作用攝像頭識別二維碼的軟體,用vb或C++做的

首先要寫一個從攝像頭讀取數據的代碼,這部分可以用opencv來搞定,再就是從圖片識別出二維碼,這部分網上應該也有源碼。如果你分別找這兩部分的源碼,比你把整個需求寫出來找源碼要容易的多。要不你試試按上面的搜一下,自己寫起來還是比較麻煩的,老闆又叫板磚了,恕我不給你寫源碼了。。。

❿ 哪有比較好的QRCODE二維碼解碼代碼解決方法

QR碼是二維條碼的一種,1994年由日本Denso-Wave公司發明。QR來自英文「Quick Response」的縮寫,即快速反應的意思,源自發明者希望QR碼可讓其內容快速被解碼。QR碼最常見於日本,並為目前日本最流行的二維空間條碼。

熱點內容
先出存儲器 發布:2024-10-02 22:23:38 瀏覽:849
深宮曲安卓如何下載 發布:2024-10-02 21:54:38 瀏覽:99
如何給密碼門設密碼不是指紋鎖 發布:2024-10-02 21:36:36 瀏覽:713
荊門伺服器ip 發布:2024-10-02 21:36:35 瀏覽:976
不常用演算法 發布:2024-10-02 21:31:33 瀏覽:974
如何做資料庫備份 發布:2024-10-02 21:26:33 瀏覽:611
微信緩存如何設置時間設置在哪裡設置 發布:2024-10-02 21:12:34 瀏覽:41
笑傲江湖免費腳本 發布:2024-10-02 20:56:08 瀏覽:661
c語言switchcase字元 發布:2024-10-02 20:46:08 瀏覽:461
壓縮機操作證 發布:2024-10-02 20:19:56 瀏覽:25