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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一维二维码的提取、识别和产生

發(fā)布時(shí)間:2025/7/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一维二维码的提取、识别和产生 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一維二維碼的提取、識(shí)別和產(chǎn)生 零、相關(guān)說(shuō)明: ? ? 在“jsxyhelu.cnblogs.com/機(jī)器視覺(jué)”欄目主要介紹和圖像處理和機(jī)器視覺(jué)相關(guān)的的成套的解決方案、思路和軟件集。希望能夠?yàn)榇蠹以趯?shí)際工作中解決具體問(wèn)題提供一些幫助。 一、背景資料: ? ? ??現(xiàn)在一維碼、二維碼廣泛使用于工業(yè)各方面。很多和圖像處理相關(guān)的需求也有所涉及。這里也看過(guò)一些論文,里面有一些方法還是art-of-air的,也有一些具備一定參考價(jià)值。這里只是談一談一般情況下的提取和識(shí)別。對(duì)于特殊情況,肯定要特殊對(duì)待,其實(shí)本身是一個(gè)增強(qiáng)的處理。在條碼的處理和產(chǎn)生部分,主要借助了zxing ? ? ?? 那么,問(wèn)題可以分為三個(gè) ? ? ? 1.1如何從圖片中獲取條碼區(qū)域并且提取條碼(由于缺乏二維碼圖片所有這里只分析一維碼,以后有了二維碼實(shí)際拍攝的圖片再補(bǔ)上); ? ? ? 1.2如何識(shí)別條碼; ? ? ? 1.3如何參數(shù)條碼 二、主要內(nèi)容: ? ? ? 2.1如何從圖片中獲取條碼區(qū)域并且提取條碼 ? ? ? 條碼(也就是一維碼)在設(shè)計(jì)的時(shí)候就被設(shè)計(jì)成縱向冗余的。提取就可以借助這一特性。 ? ? ? 比如這樣的圖像,經(jīng)過(guò)canny->dilate->erode就可以得到這樣的結(jié)果
? ? Mat?cannyClone=?Mat::zeros(Size(gray.cols,gray.rows),gray.type());
????Canny(gray,canny,100,255);
????Mat?element?=?getStructuringElement(MORPH_ELLIPSE,Size(7,3));
????morphologyEx(canny,canny,CV_MOP_DILATE,element);
????morphologyEx(canny,canny,CV_MOP_ERODE?,element);
????imwrite("canny.jpg",canny); ? ? ? 特征已經(jīng)比較明顯了,緊接著選取所有輪廓中最大的,并且將這個(gè)最大輪廓的外界長(zhǎng)方形整個(gè)的扣出來(lái),一般情況下就能夠得到正確的結(jié)果:
findContours(canny,contours,CV_RETR_TREE,CV_CHAIN_APPROX_NONE);
????for?(int?i=0;i<contours.size();i++)
????{
????????int?itmp?=??contourArea(contours[i]);
????????if?(imaxcontour?<?itmp?)
????????{
????????????imax?=?i;
????????????imaxcontour?=?itmp;
????????}
????}
????//找到輪廓的處理
????Rect?boundRect;//最小外接矩形
????drawContours(cannyClone,contours,imax,Scalar(255),-1);
????boundRect?=?boundingRect(Mat(contours[imax]));
????Mat?srcRoi?=?src(boundRect);
????imwrite("barcode.jpg",srcRoi); ? 2.2如何識(shí)別條碼; ? ? ?借助zxing的相關(guān)方法,這里的解法是一維/二維通用的? string?opFilePath?=?System.Environment.CurrentDirectory?+?"\\result.jpg";
????????????MultiFormatReader?mutiReader?=?new?com.google.zxing.MultiFormatReader();
????????????Bitmap?img?=?(Bitmap)Bitmap.FromFile(opFilePath);
????????????if?(img?==?null)
????????????????return;
????????????LuminanceSource?ls?=?new?RGBLuminanceSource(img,?img.Width,?img.Height);
????????????BinaryBitmap?bb?=?new?BinaryBitmap(new?com.google.zxing.common.HybridBinarizer(ls));
????????????Result?r?=?mutiReader.decode(bb);
????????????tb.Text?=?r.Text; 2.2如何產(chǎn)生條碼; ? ? ? 同樣是借助zxing的相關(guān)方法,這個(gè)具體看代碼和相關(guān)資料。 ? ? ? ? 三、遺留問(wèn)題: ? ? ? 由于zxing沒(méi)有從源代碼上吸收,所以無(wú)法保證算法的強(qiáng)壯性和可移植性,許多時(shí)候最終平臺(tái)的選擇還要考慮到zxing的本身的問(wèn)題; ? ? ? 同時(shí),對(duì)于一些可能比較復(fù)雜的情況,可能這里的比較簡(jiǎn)單的獲取方法還有問(wèn)題,還需要具體問(wèn)題具體對(duì)待。 ? ? ?





轉(zhuǎn)載于:https://www.cnblogs.com/jsxyhelu/p/4650158.html

總結(jié)

以上是生活随笔為你收集整理的一维二维码的提取、识别和产生的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。