圖像模糊度估計方法
【專利摘要】本發(fā)明公開了一種圖像模糊度估計方法,其包括:從定位到條碼的圖像中提取多個觀測特征矢量,其中多個模糊等級中的每一個對應一個觀測特征矢量和預先建立的多個基準特征矢量集中的一個;將提取的每個觀測特征矢量與對應的基準特征矢量集中的每個基準特征矢量進行比較以在該對應的基準特征矢量集中找到一個與該提取的觀測特征矢量相匹配的基準特征矢量,記錄提取的觀測特征矢量與找到的匹配基準特征矢量的相似度;基于提取的各個觀測特征矢量與找到的各個匹配基準特征矢量的相似度確定采集的圖像的模糊等級。這樣,本發(fā)明充分利用了條碼圖像的特點,可以準確的、快速的得到圖像的模糊等級,運算復雜度相對較低。
【專利說明】圖像模糊度估計方法
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及線性條碼(linear barcode)識別領(lǐng)域,尤其涉及一種線性條碼識別過程中的模糊度估計方法。
【【背景技術(shù)】】
[0002]線性條碼也常被稱為一維條碼(ID barcode),其是將寬度不等的多個黑條和空白,按照一定的編碼規(guī)則排列,用以表達一組信息的圖形標識符。目前在工業(yè)和民用領(lǐng)域應用得非常廣泛。常見的線性條碼包括統(tǒng)一商品碼(Universal Product Code,簡稱UPC碼)、歐洲商品編碼(European ArticleNumber,簡稱EAN碼)、日本商品編碼(Japanese ArticleNumber,簡稱 JAN 碼)、Code 25、Code 39, Code 128 等等。
[0003]常用的條碼掃描設(shè)備通常由光源(比如激光)、光學透鏡、感光器件(例如(XD,CMOS等)、解碼邏輯電路和1/0接口等組件構(gòu)成。簡單來講,所述光源投射光至條碼上,從條碼處反射的光透過所述光學透鏡進入感光器件表面,經(jīng)過光電轉(zhuǎn)換、模數(shù)轉(zhuǎn)換等一系列處理后形成條碼的數(shù)字圖像,然后解碼邏輯電路對攝取的圖像進行分析和解碼。目前的條碼掃描設(shè)備一般都是專用的條碼掃描設(shè)備,比如商場內(nèi)的與零售系統(tǒng)連接的條碼掃描器、圖書館內(nèi)的與圖書管理系統(tǒng)連接的條碼掃描器或醫(yī)院內(nèi)的與電腦系統(tǒng)連接的條碼掃描器,其可以采集到高質(zhì)量的條碼圖像,這樣可以較為容易的實現(xiàn)條碼的解碼。
[0004]目前很多便攜式電子設(shè)備比如手機、PDA(個人數(shù)字助理)等都配置有攝像頭裝置,利用所述攝像頭裝置用戶可以進行拍攝照片和視頻等應用。對于較低配置的攝像頭模組,比如存在于大量中低端手機中的攝像頭模組,由于是采用定焦鏡頭(fixed-focuslens),導致拍攝的圖像經(jīng)常由于對焦不準而處于模糊狀態(tài)。
[0005]為了對模糊狀態(tài)的圖形進行準確有效的條碼識別,有必要估計得到圖像的模糊度(或稱模糊等級)。圖像模糊度的估計已經(jīng)存在一些有效的辦法,比如通過在倒譜域內(nèi)或者小波變換等進行估計,由于運算復雜度相對較高,不適于條碼識別的實時性要求。
[0006]因此,有必要開發(fā)出一種改進的圖像模糊度估計方法。
【
【發(fā)明內(nèi)容】
】
[0007]本發(fā)明要解決的技術(shù)問題之一在于提供一種模糊度估計方法,其可以對圖像的模糊度進行快速準確的估計。
[0008]為了解決上述問題,根據(jù)本發(fā)明的一個方面,本發(fā)明提供了一種圖像模糊度估計方法,其包括:采集圖像;在采集的圖像中進行條碼檢測和定位;從定位到條碼的圖像中提取多個觀測特征矢量,其中多個模糊等級中的每一個模糊等級對應一個觀測特征矢量和預先建立的多個基準特征矢量集中的一個基準特征矢量集,每個基準特征矢量集由多個基準特征矢量組成,每個基準特征矢量集中的每個基準特征矢量是基于對應的模糊等級和條碼定義的多個信息單元中的一個生成的;將提取的每個觀測特征矢量與對應的基準特征矢量集中的每個基準特征矢量進行比較以在該對應的基準特征矢量集中找到一個與該提取的觀測特征矢量相匹配的基準特征矢量,記錄提取的觀測特征矢量與找到的匹配基準特征矢量的相似度;基于提取的各個觀測特征矢量與找到的各個匹配基準特征矢量的相似度確定匹配最佳的觀測特征矢量和匹配基準特征矢量,將該匹配最佳的觀測特征矢量和基準特征矢量對應的模糊等級作為采集的圖像的模糊等級。
[0009]進一步的,所述條碼定義的每個信息單元包括所述條碼定義的多個條碼字符的組合的部分或全部。更進一步的,所述條碼定義的條碼字符包括定位符和多個數(shù)據(jù)符,所述定位符和與其合法相鄰的一個或多個數(shù)據(jù)符的組合的部分或全部形成一個信息單元。
[0010]進一步的,所述從定位到條碼的圖像中提取多個觀測特征矢量包括:從定位到條碼的圖像中以預定位置為基準提取不同寬度的圖像數(shù)據(jù),基于提取的每個寬度的圖像數(shù)據(jù)形成一個觀測特征矢量。更進一步的,從定位到的條碼的邊界開始取不同寬度的圖像數(shù)據(jù)。
[0011]進一步的,將對應的基準特征矢量集中的與提取的觀測特征矢量相似度最高的基準特征矢量作為與該提取的觀測特征矢量相匹配的基準特征矢量。
[0012]進一步的,相似度最高的觀測特征矢量和/或匹配基準特征矢量被作為最佳觀測特征矢量和/或最佳匹配基準特征矢量。
[0013]進一步的,基于提取的各個觀測特征矢量與找到的各個匹配基準特征矢量的相似度擬合一條曲線,該曲線的峰值對應的觀測特征矢量和匹配基準特征矢量被作為匹配最佳的觀測特征矢量和匹配基準特征矢量。
[0014]與現(xiàn)有技術(shù)相比,在本發(fā)明中充分利用了條碼圖像的特點,采用了一種完全不同的模糊度估計方法,可以準確的、快速的得到圖像的模糊度或模糊等級,運算復雜度相對較低,可以滿足實時性的要求。
[0015]關(guān)于本發(fā)明的其他目的,特征以及優(yōu)點,下面將結(jié)合附圖在【具體實施方式】中詳細描述。`
【【專利附圖】
【附圖說明】】
[0016]結(jié)合參考附圖及接下來的詳細描述,本發(fā)明將更容易理解,其中同樣的附圖標記對應同樣的結(jié)構(gòu)部件,其中:
[0017]圖1為提出的圖像模糊度估計方法在一個實施例中的流程示意圖;
[0018]圖2示出了采集的條碼圖像的示例;
[0019]圖3示出了 EAN-13條碼的結(jié)構(gòu)示例;
[0020]圖4示出了一個黑線條模糊后的示意圖;
[0021]圖5為找到的匹配基準特征矢量的相似度的擬合曲線示意圖;
[0022]圖6為本發(fā)明中的條碼檢測方法在一個實施例中的流程示意圖;
[0023]圖7為本發(fā)明中在進行條碼檢測時的條形區(qū)域搜索方法在一個實施例中的流程示意圖;
[0024]圖8示出了在條形區(qū)域搜索時圖像中的查找區(qū)域和停止區(qū)域的相對位置關(guān)系;
[0025]圖9為本發(fā)明中的條碼定位方法在一個實施例中的流程示意圖;
[0026]圖10示出了在邊界點搜索時圖像中的搜索區(qū)域的位置的示例;
[0027]圖11為本發(fā)明中在進行條碼定位時的邊界點搜索方法在一個實施例中的流程示意圖;和[0028]圖12示出了灰度圖像中的一行像素點的灰度值曲線示例。
【【具體實施方式】】
[0029]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0030]本發(fā)明的詳細描述主要通過程序、步驟、邏輯塊、過程或其他象征性的描述來呈現(xiàn),其直接或間接地模擬本發(fā)明中的技術(shù)方案的運作。所屬領(lǐng)域內(nèi)的技術(shù)人員使用此處的這些描述和陳述向所屬領(lǐng)域內(nèi)的其他技術(shù)人員有效的介紹他們的工作本質(zhì)。
[0031 ] 此處所稱的“ 一個實施例”或“實施例”是指與所述實施例相關(guān)的特定特征、結(jié)構(gòu)或特性至少可包含于本發(fā)明至少一個實現(xiàn)方式中。在本說明書中不同地方出現(xiàn)的“在一個實施例中”并非必須都指同一個實施例,也不必須是與其他實施例互相排斥的單獨或選擇實施例。此外,表示一個或多個實施例的方法、流程圖或功能框圖中的模塊順序并非固定的指代任何特定順序,也不構(gòu)成對本發(fā)明的限制。
[0032]本發(fā)明充分利用條碼圖像的特點,利用定位出的條碼協(xié)助進行模糊度(或稱模糊等級)估計,運算復雜度相對較低,可以滿足實時性的要求。
[0033]圖1為本發(fā)明提出的圖像模糊度估計方法100在一個實施例中的流程示意圖。如圖1所示,所述圖像模糊度估計方法100包括如下步驟。
[0034]步驟110,采集圖像。
[0035]在一個實施例中,所述圖像模糊度估計方法100在一個具有攝像裝置的便攜式電子設(shè)備(比如手機)上執(zhí)行,利用便攜式電子設(shè)備上的攝像裝置采集連續(xù)的圖像或視頻。所述攝像裝置可以采用定焦鏡頭(fixed-focus lens),也可以采用變焦鏡頭。在一個優(yōu)選的實施例中,在采集圖像后,還需要對采集的圖像進行預處理以得到固定尺寸的灰度圖像,所述預處理可以包括裁剪、尺寸變換以及彩色圖像轉(zhuǎn)灰度圖圖像等操作。
[0036]如圖2所示,其示出了一張采集的圖像,其由于鏡頭或其他原因而變得有些模糊。
[0037]該步驟120,在采集的圖像中進行條碼檢測和定位。
[0038]這個步驟包括兩個子步驟,其中一個子步驟是在采集的圖像中進行條碼檢測以確定圖像中是否有條碼(如圖2所示的條碼),如果沒有則不進行后續(xù)的條碼定位以及模糊度的估計,如果有則繼續(xù)進行;另一個子步驟是在圖像中檢測到條碼后,繼續(xù)在采集的圖像中進行條碼定位以確定條碼的邊界(比如,圖2中示意出的左右邊界)。
[0039] 需要注意的是,本發(fā)明的側(cè)重點不在于如何在采集的圖像中進行條碼檢測和定位,其可以采用現(xiàn)有的任何方法進行條碼檢測和定位,只要能找到圖像中的條碼的邊界即可。不過在本發(fā)明中仍然提出了一種優(yōu)化的條碼檢測方法以及條碼定位方法,下文將分別進行詳細描述。
[0040]步驟130,從定位到條碼的圖像中提取多個觀測特征矢量,其中多個模糊等級中的每一個模糊等級對應一個觀測特征矢量和預先建立的多個基準特征矢量集中的一個基準特征矢量集,每個基準特征矢量集由多個基準特征矢量組成,每個基準特征矢量集中的每個基準特征矢量是基于對應的模糊等級和條碼定義的多個信息單元中的一個生成的。
[0041]在進行實時的模糊度估計之前,需要預先建立多個基準特征矢量集。為了清楚,所述基準特征矢量集標記為Ci,其中1≤i≤n,也可分別標為C1, C2,……,Cn,模糊等級標記為Bi,也可分別標為B1,B2,……,Bn,所述觀測特征矢量標記為Vi,也可分別標記為V1,V2,……,Vn, η為基準特征矢量集的個數(shù)、模糊等級的個數(shù)和觀測特征矢量的個數(shù),η大于等于2。模糊等級Bi對應所述基準特征矢量集Ci和觀測特征矢量Vi。每個基準特征矢量集(;中的基準特征矢量標記為Cij,其中m,也可分別標記為Cjl,ci2,……,Cim,條碼定義的信息單元標記為Uj,也可分別標記為U1, U2,……,IV m為條碼定義的信息單元的個數(shù)和每個基準特征矢量集中的基準特征矢量的個數(shù),m大于等于2。
[0042]在一個實施例中,基于一個模糊等級Bi和條碼定義的一個信息單元+生成一個基準特征矢量cu,這樣可以為每個模糊等級Bi建立相應的標準特征矢量集C”在具體實現(xiàn)時,每個模糊等級Bi具有一個對應的模糊函數(shù),所述基準特征矢量為模糊等級Bi對應的模糊函數(shù)和信息單元+的標準函數(shù)的卷積。
[0043]為了使得本發(fā)明更容易理解,這里有必要解釋一下模糊等級B”如圖4所示,其示出了一條黑線(圖中為了突出顯示將其轉(zhuǎn)換為白線)模糊之后的圖形,可以看出,該黑線模糊之后的寬度變?yōu)榱?dl,通??梢杂迷搶挾葋肀硎灸:某潭龋热鏳l越大表示越模糊,dl越小表示越不模糊??梢愿鶕?jù)dl的尺寸和實際需要將模糊度分為不同的等級。舉例來說,對于下文描述的EAN-13條碼,可以每個模塊(module)寬度w設(shè)置一個模糊等級,比如dl=0時為第一模糊等級B1, dl≤l*w時為第二模糊等級B2, l*w < dl≤2%為第三模糊等級B3,……,(n-2)\< dl≤(η-1)\為第η模糊等級Bn。當然也可以每隔其它預定寬度設(shè)置一個模糊等級,比如每半個模塊寬度《/2設(shè)置一個模糊等級。
[0044]通常,所述條碼定義的條碼字符包括定位符(比如起始符、終止符和中間分隔符)和多個數(shù)據(jù)符。圖3不出了 EAN-13條碼(European Article Number-13barcode)的結(jié)構(gòu)示例。如圖3所示,EAN-13條碼是由起始符(guard pattern onthe left),6個左側(cè)數(shù)據(jù)符(symbol characters on the left),中間分隔符(centreguard pattern),6個右側(cè)數(shù)據(jù)符(symbol characters on the right),以及終止符(guard pattern on the right)構(gòu)成。起始符由3個模塊(module)構(gòu)成,固定為“ 101”,表示“條空條”(bar, space, bar) ;6個左側(cè)數(shù)據(jù)符由42個模塊構(gòu)成,由條碼字符集A子集(number set A)或B子集定義,每個數(shù)據(jù)符各占7個模塊;中間分隔符由 5個模塊構(gòu)成,固定為“01010”,表示“空條空條空”;6個右側(cè)數(shù)據(jù)符由42個模塊構(gòu)成,由 條碼字符集C子集定義,每個數(shù)據(jù)符各占7個模塊;終止符由3個模塊構(gòu)成,固定為“ 101”,表示“條空條”,每個模塊的寬度固定。
[0045]由于圖像模糊之后,相鄰的條碼字符之間會有影響,如圖2和3所示。具體來講,圖3中的左側(cè)第一個數(shù)據(jù)符將會受到其左邊相鄰的起始符的影響,也會受到其右邊相鄰的左側(cè)第二個數(shù)據(jù)符的影響,模糊等級越高,影響的程度將會越深,模糊等級越低,影響的程度將會越低。假如模糊寬度d為一整個數(shù)據(jù)符的寬度,那么左側(cè)第一個數(shù)據(jù)符的左半邊都會受到起始符的影響,左側(cè)第一個數(shù)據(jù)符的右半邊都會受到左側(cè)第二個數(shù)據(jù)符的影響。
[0046]在一個實施例中,所述條碼定義的每個信息單元包括所述條碼定義的多個條碼字符的組合的部分或全部。優(yōu)選的,由于定位符(比如起始符和終止符)是固定不變的,因此以左側(cè)第一個數(shù)據(jù)符或右側(cè)最后一個數(shù)據(jù)符為基礎(chǔ)確定所述條碼定義的信息單元可以大大減少信息單元的個數(shù),從而降低計算量。以左側(cè)第一個數(shù)據(jù)符為例進行介紹,假設(shè)模糊寬度d小于一個數(shù)據(jù)符的寬度,此時所述條碼定義的信息單元由起始符(標記為Al)、條碼定義的一個左側(cè)數(shù)據(jù)符(標記為A2)和條碼定義的一個左側(cè)數(shù)據(jù)符(標記為A3)的左半邊依次排布組成,由于Al是固定的,A2可以是10個數(shù)據(jù)符中的任何一種,A3也可以是10個數(shù)據(jù)符中的任何一種,因此將會有100種合法組合,也就是說,所述信息單元將有100個。對于實際的條碼圖像來說,其左側(cè)第一個條碼數(shù)據(jù)符必定是定義的信息單元中的部分。此外,假如需要處理的模糊寬度d大于I個數(shù)據(jù)符寬度小于2個數(shù)據(jù)符寬度,那么所述信息單元可以由起始符(標記為Al)、條碼定義的一個左側(cè)數(shù)據(jù)符(標記為A2)、條碼定義的一個左側(cè)數(shù)據(jù)符(標記為A3)和條碼定義的一個左側(cè)數(shù)據(jù)符(標記為A4)的左半邊依次排布組成。當然,隨著需要處理的模糊寬度d的進一步增大,需要的數(shù)據(jù)符的數(shù)量就會進一步增多。此外,還可以其它定位符為基礎(chǔ)設(shè)定信息單元,比如終止符和中間分割符,原理相同,這里不再贅述。
[0047]再次回到步驟130中的操作,在一個實施例中,在從定位到條碼的圖像中提取多個觀測特征矢量時,可以從定位到條碼的圖像中以預定位置為基準提取不同寬度的圖像數(shù)據(jù),基于提取的每個寬度的圖像數(shù)據(jù)形成一個觀測特征矢量。優(yōu)選的,假如信息單元中包括起始符或終止符,那么可以從定位到的條碼的邊界(比如左邊界或右邊界)開始取不同寬度的圖像數(shù)據(jù),即以條碼的邊界為基準提取不同寬度的圖像數(shù)據(jù)。
[0048]具體的,以信息單元包括起始符為例進行介紹,可以從定位到的條碼的左邊界掃描到所述條碼的右邊界得到一行像素的灰度數(shù)據(jù),從該行像素的灰度數(shù)據(jù)中從左邊界開始提取寬度h的灰度數(shù)據(jù),基于提取的灰度數(shù)據(jù)生成所述觀測特征矢量Vi。由于不同模糊度Bi的寬度不同,同樣的數(shù)據(jù)符在不同模糊度下的寬度也是不同的,因此不同的觀測特征矢量Vi對應的寬度Iii也應該不同,比如Ii1和h2的差是由于模糊度B1和B2的模糊寬度不同而造成的。
[0049]從另一個角度來說,步驟130中的從定位到條碼的圖像中提取多個觀測特征矢量可以理解為:假設(shè)定位到條碼的圖像的模糊等級為B1,從圖像中以預定位置(比如左右邊界)為基準提 取預定寬度h的圖像數(shù)據(jù)以形成觀測特征矢量V1 ;假設(shè)定位到條碼的圖像的模糊等級為B2,從圖像中以預定位置為基準提取預定寬度匕的圖像數(shù)據(jù)以形成觀測特征矢量v2;……;假設(shè)定位到條碼的圖像的模糊等級SBn,從圖像中以預定位置為基準提取預定寬度hn的圖像數(shù)據(jù)以形成觀測特征矢量vn。
[0050]步驟140,將提取的每個觀測特征矢量與對應的基準特征矢量集中的每個基準特征矢量進行比較以在該對應的基準特征矢量集中找到一個與該提取的觀測特征矢量相匹配的基準特征矢量,記錄提取的觀測特征矢量與找到的匹配基準特征矢量的相似度。
[0051]在一個實施例中,所述步驟140包括:將提取的每個觀測特征矢量Vi與對應的基準特征矢量集Ci中的每個基準特征矢量進行比較得到提取的每個觀測特征矢量Vi與對應的基準特征矢量集Ci中的每個基準特征矢量的相似度;將該對應的基準特征矢量集Ci中的與該提取的觀測特征矢量Vi相似度最高的基準特征矢量作為與該提取的觀測特征矢量Vi相匹配的基準特征矢量(也可稱之為匹配基準特征矢量)。
[0052]步驟150,基于提取的各個觀測特征矢量Vi與找到的各個匹配基準特征矢量的相似度確定匹配最佳的觀測特征矢量和匹配基準特征矢量,將該匹配最佳的觀測特征矢量和匹配基準特征矢量對應的模糊等級作為采集的圖像的模糊等級。
[0053]在一個實施例中,相似度最高的觀測特征矢量和/或匹配基準特征矢量被作為最佳觀測特征矢量和/或最佳匹配基準特征矢量。[0054]在另一個實施例中,為了消除噪聲的影響,基于提取的各個觀測特征矢量Vi與找到的各個匹配基準特征矢量的相似度擬合一條曲線,該曲線的峰值對應的觀測特征矢量和匹配基準特征矢量被作為匹配最佳的觀測特征矢量和匹配基準特征矢量。如圖5所示,假設(shè)有8個模糊等級,基準特征矢量集C1中的基準特征矢量C11被確定為觀測特征矢量V1的匹配基準特征矢量,基準特征矢量集C2中的基準特征矢量C23被確定為觀測特征矢量V2的匹配基準特征矢量,……,基準特征矢量集C8中的基準特征矢量C86被確定為觀測特征矢量^的匹配基準特征矢量,基于提取的各個觀測特征矢量Vi與找到的各個匹配基準特征矢量的相似度擬合一條曲線LI,該條曲線的峰值對應的觀測特征矢量\和匹配基準特征矢量C59將被作為匹配最佳的觀測特征矢量和匹配基準特征矢量,最后采集的圖像的模糊等級將被設(shè)置為模糊等級B5。
[0055]綜上所述,本發(fā)明充分采用了條碼圖像的特點,采用了一種完全不同的模糊度估計方法,可以準確的、快速的得到圖像的模糊度或模糊等級,運算復雜度相對較低,可以滿足實時性的要求。
[0056]下面詳細介紹本發(fā)明提出的優(yōu)選的條碼檢測方法和條碼定位方法。
[0057]條碼檢測
[0058]圖6為本發(fā)明中的條碼檢測方法300在一個實施例中的流程示意圖。如圖3所示,所述條碼檢測方法300包括以下步驟。
[0059]步驟310,在圖像中搜索至少兩個條形區(qū)域,并確定每個條形區(qū)域的端點。如果未搜索到至少兩個條形區(qū)域, 則判定所述圖像中不包含有條碼,如果搜索到了至少兩個條形區(qū)域,則進入下一個步驟。
[0060]圖7為一種條形區(qū)域搜索方法在一個實施例中的流程示意圖。下面結(jié)合圖7來示例性的詳細介紹如何在圖像中搜索條形區(qū)域并確定所述條形區(qū)域的端點。
[0061]步驟311,在圖像中設(shè)定查找區(qū)域和停止區(qū)域。
[0062]如圖8所示,所述查找區(qū)域的范圍小于等于所述停止區(qū)域,所述停止區(qū)域的范圍大于等于所述查找區(qū)域而小于等于圖像。所述查找區(qū)域可以是整個圖像,也可以是在圖像中事先選定的一定寬和高的矩形區(qū)域。所述圖像邊界可以為預處理后的灰度圖像的邊界。
[0063]在一個特別的示例中,所述查找區(qū)域等于所述停止區(qū)域,也等于所述圖像,這樣就相當于未設(shè)置查找區(qū)域和停止區(qū)域,直接在整個圖像上進行查找或搜索。換句話說,在此種情況下,相當于未設(shè)置查找區(qū)域和停止區(qū)域。類似的,在所述停止區(qū)域等于所述圖像時,相當于未設(shè)置停止區(qū)域。
[0064]查找區(qū)域和停止區(qū)域可以根據(jù)具體條碼識別應用的背景或者系統(tǒng)硬件的處理能力等因素來確定。比如在一些應用中,條碼所在的大致位置是確定的,則查找區(qū)域只需要將該大致位置包含在內(nèi)即可。再比如在一些應用中,由于硬件設(shè)備處理能力有限,無法對整幅圖像進行全圖像搜索,則可以設(shè)定在圖像的一個固定區(qū)域作為查找區(qū)域。
[0065]步驟312,在所述查找區(qū)域內(nèi)選定一行像素點。
[0066]在一個實施例中,可以選定所述查找區(qū)域的任意一行像素點,比如所述查找區(qū)域的中間一個像素點或第一行像素點。
[0067]步驟313,在選定的一行像素點中選定一個黑色像素點作為初始黑色像素點并記錄該初始黑色像素點的坐標。[0068]在一個實施例中,黑色像素點的判定可以是比較選定的像素點和臨近像素點的灰度差異,當灰度差異達到預先設(shè)定的一個灰度差異門限值的時候即可認定該像素點是一個黑色像素點,否則認為是背景像素點(或稱為白色像素點),繼續(xù)選定另一個像素點,記錄選定的黑色像素點的坐標。
[0069]在另一個實施例中,也可以直接將像素點的灰度值與一個灰度閾值進行比較,在其灰度值小于所述灰度閾值時被確定為黑色像素點。
[0070]如果在選定的一行像素點中沒有找到黑色像素點,則在查找區(qū)域內(nèi)另選一行像素點重復步驟313,直到找到一個黑色像素點或在查找區(qū)域內(nèi)查找完所有行像素。
[0071]步驟314,從初始黑色像素點開始搜索其它黑色像素點,直到不能找到連續(xù)的黑色像素點,記錄搜索到的黑色像素的坐標。
[0072]在一個實施例中,所述黑色像素點的搜索過程包括:將所述初始黑色像素點記錄為當前黑色像素點;從當前黑色像素點的上方或下方的三個像素點中找到灰度值最小的一個;確定該找到的像素點是否為黑色像素點;和如果該找到的像素點為黑色像素點,那么將該找到的像素點作為所述當前黑色像素點以繼續(xù)搜索下一黑色像素點。如果搜索到的黑色像素點在停止區(qū)域之內(nèi),則可以繼續(xù)搜索,如果在停止區(qū)域之外,則停止搜索,這樣可以節(jié)省計算量。
[0073]可以通過將找到的像素點的灰度值與預定灰度閾值進行比較來確定找到的像素點是否為黑色像素點,也可以通過比較找到的像素點與上一個黑色像素點的灰度值差異與預定灰度差異閾值進行比較來確定找到的像素點是否為黑色像素點。
[0074]如果在步驟314中查找失敗,則在查找區(qū)域內(nèi)另選一行像素點重復上述步驟313和314,直到找到端點或者在查找區(qū)域內(nèi)查找完畢而未找到端點。
[0075]步驟315,將找到的黑色像素點的坐標進行曲線擬合得到第一曲線,基于該曲線確定是否找到了一個找到了一個條形區(qū)域,假如找到了一個條形區(qū)域,則將所找到的最外側(cè)的黑色像素點作為找到的條形區(qū)域的端點。
[0076]根據(jù)初始黑色像素點和其它記錄的黑色像素點的位置確定是否找到了條形區(qū)域。
[0077]在一個實施例中,將所記錄的黑色像素點(包括初始黑色像素點、其他記錄的黑色像素點)的坐標進行曲線擬合(curve fitting)得到一第一曲線,之后基于該第一曲線確定找到了條形區(qū)域。
[0078]具體的,統(tǒng)計該第一曲線在各黑色像素點附近的曲率(curvature)以及各黑色像素點到該第一曲線的距離。如果所述第一曲率小于事先規(guī)定的第一曲率門限值而且所有的距離不超過事先規(guī)定的第一距離門限值,則認為該黑色區(qū)域是一個條形區(qū)域;否則認為該黑色區(qū)域不是一個條形區(qū)域。
[0079]在利用上述方法在圖像中搜索一個條形區(qū)域,之后可以采用相同的方法在搜索到的條形區(qū)域的臨近區(qū)域中再搜索一定數(shù)量的其它條形區(qū)域,并確定它們的端點。
[0080]步驟320,基于搜索到的各個條形區(qū)域的端點確定各個條形區(qū)域是否屬于一個條碼,如果搜索到的各個條形區(qū)域?qū)儆谕粋€條碼,則可以判定所述圖像中包含有條碼,否則判定所述圖像中不包含條碼。需要指明的是,所述圖像中不包括條碼包括兩種情況,一種是真的不包括條碼,另一種是包括兩個或多個條碼。對于包括兩個或多個條碼的情況,在本發(fā)明中被視為不包括條碼。[0081]在一個實施例子中,計算搜索到的各條形區(qū)域的方向的差異;將搜索到的各條形區(qū)域的同側(cè)的端點的坐標進行曲線擬合得到一第二曲線;基于各條形區(qū)域的方向的差異和/或所述第二曲線確定各個條形區(qū)域是否屬于一個條碼。
[0082]具體的,統(tǒng)計該第二曲線在這些同側(cè)端點附近的曲率以及這些同側(cè)端點到該第二曲線的距離;如果該曲率小于事先規(guī)定的第二曲率門限值,各條形區(qū)域方向上的差異不超過事先規(guī)定的第二角度門限值,各條形區(qū)域的同側(cè)的端點和利用該側(cè)端點擬合的第二曲線之間的距離不超過事先規(guī)定的第二距離門限值。
[0083]如果在圖像中未檢測到條碼,則認為條碼檢測失敗。
[0084]需要說明的是,圖3只是示出了的條碼檢測的一個實施例,在其他實施例中,還可以采用其他條碼檢測方法。
[0085]條碼定位
[0086]圖9為本發(fā)明中的條碼定位方法400在一個實施例中的流程示意圖。如圖6所示,所述條碼定位方法400包括以下步驟。
[0087]步驟410,在圖像中搜索至少兩個左邊界點和至少兩個右邊界點。
[0088]在一個實施例中,為降低計算量,可以在圖像中設(shè)定搜索區(qū)域,該搜索區(qū)域可以根據(jù)需要設(shè)定,在默認的情況下可以等于整個圖像區(qū)域,條碼的定位是在搜索區(qū)域內(nèi)進行的搜索的。所述圖像可以為預處理后的灰度圖像。
[0089]在條碼檢測方法400中,已經(jīng)在圖像中檢測到了條碼并且可以在圖像中檢測到了至少兩個條形區(qū)域及其端點。如圖10所示,其示出了進行條碼定位的圖像、檢測出的一個條形區(qū)域的條形端點11和12、檢測出的另一個條形區(qū)域的條形端點21和22,根據(jù)條形區(qū)域的同側(cè)端點11和21擬合而成的擬合直線1,根據(jù)條形區(qū)域的同側(cè)端點12和22擬合而成的擬合直線2??梢钥闯?,條碼的左右邊界應該是位于擬合直線I和2之間的。
[0090]在一個優(yōu)選的實施例中,可以將搜索區(qū)域設(shè)定在擬合直線I和2之間,比如搜索區(qū)域是一個橫向放置的矩形區(qū)域,其頂部不超過位于上端的擬合直線I的最低值,其底部不低于位于下端的擬合直線2的最高值,其左右兩端則是在圖像的左右邊界附近。
[0091]圖11為一種條碼的邊界點搜索方法在一個實施例中的流程示意圖。下面參照圖11示例性的詳細介紹如何在圖像中搜索一個邊界點。
[0092]步驟411,從搜索區(qū)域中選取一行像素點,將預定像素寬度的滑動窗口從該行像素點的第一端開始朝向第二端逐像素進行移動,所述第一端可以是左端和右端中的一個,第二端是左端和右端中的另一個。
[0093]步驟412,根據(jù)在每個移動位置的滑動窗口的左側(cè)像素點和右側(cè)像素點的灰度值差異找到第一邊界區(qū)域。
[0094]每移動到一個新的位置,就會比較滑動窗口左右兩側(cè)像素點灰度值的差異,當該差異超過預定灰度值差異門限值時,即認為邊界點已經(jīng)位于滑動窗口之內(nèi),此時該滑動窗口所在的區(qū)域就是第一邊界區(qū)域。
[0095]請參圖12所示,其示出了搜索區(qū)域內(nèi)單行像素點的灰度值曲線、虛線框表示的滑動窗口和條碼的一個左邊界點,縱坐標軸表示像素點的灰度值,橫坐標軸表示像素點在該行像素點中的位置。
[0096]步驟411和412可以統(tǒng)稱為邊界點的粗略查找。[0097]步驟413,通過計算第一邊界區(qū)域內(nèi)的相鄰像素點的灰度值差異在所述第一邊界區(qū)域內(nèi)找到多個連續(xù)的平坦像素點和跟隨所述連續(xù)的平坦像素點的多個連續(xù)的變動像素點。
[0098]對于第一邊界區(qū)域內(nèi)的每一像素點,在該像素點的靠近第二端的一側(cè)選取預定數(shù)量的像素點,統(tǒng)計選取的這些像素點的左端點和右端點的灰度值差異,如果這個灰度值差異達到最大值,記錄其對應的第一邊界區(qū)域內(nèi)的該像素點的位置。在該記錄像素點的靠近第二端的一側(cè)選取一定數(shù)量的連續(xù)像素點作為平坦像素點,在此記錄像素點的靠近第一端的一側(cè)選取一定數(shù)量的連續(xù)像素點作為變動像素。
[0099]步驟414,根據(jù)所述平坦像素點擬合第一直線,根據(jù)所述變動像素點擬合第二直線。
[0100]將所述平坦像素點在灰度圖像中的橫坐標作為橫坐標,將它們的灰度值作為縱坐標,進行線性擬合得到第二直線。將所述變動像素在灰度圖像中的橫坐標作為橫坐標,將它們的灰度值作為縱坐標,進行線性擬合得到第二直線。
[0101]步驟415,計算第一直線和第二直線的交點,將該交點的橫坐標作為該行像素點的第一邊界點的橫坐標,該行像素點的縱坐標為第一邊界點的縱坐標。
[0102]如圖12所示,所述第一直線類似于左邊界點的右側(cè)的像素灰度線,所述第二直線類似于左邊界點的左側(cè)的像素灰度線,兩條像素灰度線交匯處即為邊界像素點。
[0103]這樣就找到了一個第一邊界點。步驟413、414和415可以統(tǒng)稱為邊界點的精確定位查找。同樣的,采用相同的方法可以找到其它第一邊界點。同理,可以將滑動窗口從第二端向第一端逐像素滑動就可以在搜索區(qū)域內(nèi)搜索一定數(shù)量的第二邊界點。
[0104]需要注意的是,如果選取的一行像素的第一端為左端,即從所述搜索區(qū)域的左邊界開始搜索,則第一邊界點為左邊界點,第二邊界點為右邊界點,如果選取的一行像素的第一端為右端,即從所述搜索區(qū)域的右邊界開始搜索,則第一邊界點為右邊界點,第二邊界點為左邊界。
[0105]步驟420,分別基于搜索到的左右邊界點確定條碼的左右邊界。
[0106]在一個實施例中,將搜索到的左邊界點(同側(cè)邊界點)擬合成一條曲線,該曲線在搜索到的左邊界點附近的曲率需要小于一個預定曲率門限值;根據(jù)搜索到的左邊界點到所述曲線的距離判斷是否有非法左邊界點,如果搜索到的一個左邊界點到所述曲線的距離大于預定距離門限,則認為該邊界點為非法邊界點;如果有,則去除非法左邊界點,并對剩余的左邊界點再次擬合成一條曲線,并基于該曲線確定左邊界。
[0107]同樣的,可以采用同樣的操作來實現(xiàn)基于搜索到的右邊界點得到條碼的右邊界。
[0108]如果在圖像中未確定到條碼的左右邊界,則認為條碼定位失敗。
[0109]需要說明的是,圖9只是示出了所述條碼檢測步驟400的一個實施例,在其他實施例中,還可以采用其他條碼定位方法。
[0110]本文中的“和/或”表示和或者或,比如A、B和/或C,包括A、B、C、AB、AC、Be、ABC
幾種情況。本文中的“包括”均表示“包括但不限于”。本文中的“步驟”和“方法”在有些情況下是可以替換的,一個方法的一個步驟也可以被稱為另一個方法。本文中的“若干”為兩個或兩個以上,“多個”為兩個或兩個以上。
[0111]上文對本發(fā)明進行了足夠詳細的具有一定特殊性的描述。所屬領(lǐng)域內(nèi)的普通技術(shù)人員應該理解,實施例中的描述僅僅是示例性的,在不偏離本發(fā)明的真實精神和范圍的前提下做出所有改變都應該屬于本發(fā)明的保護范圍。本發(fā)明所要求保護的范圍是由所述的權(quán)利要求書進行限定的,而不是由實施例中的上述描述來限定的。
【權(quán)利要求】
1.一種圖像模糊度估計方法,其特征在于,其包括: 采集圖像; 在采集的圖像中進行條碼檢測和定位; 從定位到條碼的圖像中提取多個觀測特征矢量,其中多個模糊等級中的每一個模糊等級對應一個觀測特征矢量和預先建立的多個基準特征矢量集中的一個基準特征矢量集,每個基準特征矢 量集由多個基準特征矢量組成,每個基準特征矢量集中的每個基準特征矢量是基于對應的模糊等級和條碼定義的多個信息單元中的一個生成的; 將提取的每個觀測特征矢量與對應的基準特征矢量集中的每個基準特征矢量進行比較以在該對應的基準特征矢量集中找到一個與該提取的觀測特征矢量相匹配的基準特征矢量,記錄提取的觀測特征矢量與找到的匹配基準特征矢量的相似度; 基于提取的各個觀測特征矢量與找到的各個匹配基準特征矢量的相似度確定匹配最佳的觀測特征矢量和匹配基準特征矢量,將該匹配最佳的觀測特征矢量和基準特征矢量對應的模糊等級作為采集的圖像的模糊等級。
2.根據(jù)權(quán)利要求1所述的圖像模糊度估計方法,其特征在于,所述條碼定義的每個信息單元包括所述條碼定義的多個條碼字符的組合的部分或全部。
3.根據(jù)權(quán)利要求2所述的圖像模糊度估計方法,其特征在于,所述條碼定義的條碼字符包括定位符和多個數(shù)據(jù)符,所述定位符和與其合法相鄰的一個或多個數(shù)據(jù)符的組合的部分或全部形成一個信息單元。
4.根據(jù)權(quán)利要求1所述的圖像模糊度估計方法,其特征在于,所述從定位到條碼的圖像中提取多個觀測特征矢量包括:從定位到條碼的圖像中以預定位置為基準提取不同寬度的圖像數(shù)據(jù),基于提取的每個寬度的圖像數(shù)據(jù)形成一個觀測特征矢量。
5.根據(jù)權(quán)利要求4所述的圖像模糊度估計方法,其特征在于,從定位到的條碼的邊界開始取不同寬度的圖像數(shù)據(jù)。
6.根據(jù)權(quán)利要求1-5任一所述的圖像模糊度估計方法,其特征在于,將對應的基準特征矢量集中的與提取的觀測特征矢量相似度最高的基準特征矢量作為與該提取的觀測特征矢量相匹配的基準特征矢量。
7.根據(jù)權(quán)利要求1-5所述的圖像模糊度估計方法,其特征在于,相似度最高的觀測特征矢量和/或匹配基準特征矢量被作為最佳觀測特征矢量和/或最佳匹配基準特征矢量。
8.根據(jù)權(quán)利要求1-5任一所述的圖像模糊度估計方法,其特征在于,基于提取的各個觀測特征矢量與找到的各個匹配基準特征矢量的相似度擬合一條曲線,該曲線的峰值對應的觀測特征矢量和匹配基準特征矢量被作為匹配最佳的觀測特征矢量和匹配基準特征矢量。
9.根據(jù)權(quán)利要求1-5任一所述的圖像模糊度估計方法,其特征在于,在所述圖像中進行條碼檢測包括:在圖像中搜索至少兩個條形區(qū)域,并確定每個條形區(qū)域的端點;基于搜索到的各個條形區(qū)域的端點確定搜索到的各個條形區(qū)域是否屬于一個條碼;如果搜索到的各個條形區(qū)域?qū)儆谝粋€條碼,則判定所述圖像中包含有條碼, 其中所述在圖像中搜索至少兩個條形區(qū)域,并確定每個條形區(qū)域的端點包括: 選定一行像素點; 在選定的一行像素點中選定一個黑色像素點作為初始黑色像素點并記錄該初始黑色像素點的坐標; 從初始黑色像素點開始依次搜索其它黑色像素點,直到不能找到連續(xù)的黑色像素點,記錄搜索到的黑色像素的坐標; 將所記錄的黑色像素點的坐標進行曲線擬合得到一曲線;和 基于該曲線確定是否找到了一個找到了一個條形區(qū)域,并將所記錄的最外側(cè)的黑色像素點作為找到的條形區(qū)域的端點。
10.根據(jù)權(quán)利要求1-5任一所述的圖像模糊度估計方法,其特征在于,在所述圖像中進行條碼定位包括:在圖像中搜索至少兩個左邊界點和至少兩個右邊界點;分別基于搜索到的左右邊界點確定條碼的左右邊界, 其中所述在圖像中搜索至少兩個左邊界點和至少兩個右邊界點包括: 選取一行像素點; 將預定像素寬度的滑動窗口從該行像素點的第一端開始朝向第二端逐像素進行移動; 根據(jù)在每個移動位置的滑動窗口的左側(cè)像素點和右側(cè)像素點的灰度值差異找到第一邊界區(qū)域; 通過計算第一邊界區(qū)域內(nèi)的相鄰像素點的灰度值差異在所述第一邊界區(qū)域內(nèi)找到多個連續(xù)的平坦像素點和跟隨所述平坦像素點的多個連續(xù)的變動像素點; 根據(jù)所述平坦像素點擬合第一直線,根據(jù)所述變動像素點擬合第二直線; 計算第一直線和第二直線的交點,并將所述交點的橫坐標作為該行像素點的一個第一邊界點的橫坐標, 其中如果所述選取行像素的第一端是左端,那么第一邊界點就是左邊界點,如果所述選取行像素的第二端是右端,那么第一邊界點就是右邊界點。
【文檔編號】G06K9/46GK103778398SQ201210402722
【公開日】2014年5月7日 申請日期:2012年10月22日 優(yōu)先權(quán)日:2012年10月22日
【發(fā)明者】陳凌 申請人:無錫愛丁閣信息科技有限公司