日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV+Zbar扫描二维码

發布時間:2024/1/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV+Zbar扫描二维码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前做了個opencv識別二維碼數據上傳云數據庫端,雖然后買呢拿掃碼槍做了,還是記錄下,二維碼解碼我用的zbar,zbar解碼出來中文會有亂碼,需要轉碼,我找了網上的方法轉碼,有的可以轉碼成功有的還是亂碼,有知道方法的求告知,這里貼上代碼,因為做了有段時間參考的博客和代碼沒保存下來。

#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> #include <zbar.h> #include <windows.h>using namespace cv; using namespace std; using namespace zbar;void utf8ToGB2312(string utf, string& gb);int main() {zbar::ImageScanner scanner;scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);Mat QR = imread(“QR.jpg”);Mat imgGray;cvtColor(QR, imgGray, CV_BGR2GRAY); // 灰度化int width = imgGray.cols;int height = imgGray.rows;Image image(width, height, "Y800", imgGray.data, width * height); // 圖片格式轉換scanner.scan(image);Image::SymbolIterator symbol = image.symbol_begin();if (image.symbol_begin() == image.symbol_end()){cout << "查詢條碼失敗,請檢查圖片!" << endl;}string symbol_type;string symbol_data;string str1;string gb2312;string gb;for (; symbol != image.symbol_end(); ++symbol){symbol_type = symbol->get_type_name();symbol_data = symbol->get_data();utf8ToGB2312(symbol_data, gb2312);cout << "類型:" << endl << symbol_type << endl << endl;cout << "utf8ToGB2312:" << endl << gb2312 << endl << endl;}waitKey(0);return(0); }void utf8ToGB2312(string utf, string& gb) {//just for windowsint len = MultiByteToWideChar(CP_UTF8, 0, utf.c_str(), -1, NULL, 0);wchar_t* wstr = new wchar_t[len + 1];memset(wstr, 0, len + 1);MultiByteToWideChar(CP_UTF8, 0, utf.c_str(), -1, wstr, len);len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);char* str = new char[len + 1];memset(str, 0, len + 1);WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);if (wstr)delete[] wstr;gb = str;delete[] str; }

zbar這個庫很強大,我測試下二維碼旋轉,二維碼在圖片一個區域內都能解碼成功,除了會有中文亂碼這個缺點。

總結

以上是生活随笔為你收集整理的OpenCV+Zbar扫描二维码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。