專利名稱:條碼定位方法及裝置的制作方法
條碼定位方法及裝置技術(shù)領(lǐng)域:
本發(fā)明涉及線性條碼(linear barcode)識(shí)別領(lǐng)域,尤其涉及一種定位圖像中條碼位置的方法及裝置。背景技術(shù):
線性條碼也常被稱為一維條碼(ID barcode),其是將寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識(shí)符。目前在工業(yè)和民用領(lǐng)域應(yīng)用得非常廣泛。常見的線性條碼包括統(tǒng)一商品碼(Universal Product Code,簡(jiǎn)稱UPC碼)、 歐洲商品編碼(European Article Number,簡(jiǎn)稱EAN碼)、日本商品編碼(Japanese Article Number,簡(jiǎn)稱 JAN 碼)、Code 25、Code 39, Code 128 等等。
常用的條碼掃描設(shè)備通常由光源(比如激光)、光學(xué)透鏡、感光器件(例如CCD, CMOS等)、解碼邏輯電路和1/0接口等組件構(gòu)成。簡(jiǎn)單來講,所述光源投射光至條碼上,從條碼處反射的光透過所述光學(xué)透鏡進(jìn)入感光器件表面,經(jīng)過光電轉(zhuǎn)換、模數(shù)轉(zhuǎn)換等一系列處理后形成條碼的數(shù)字圖像,然后解碼邏輯電路對(duì)攝取的圖像進(jìn)行分析和解碼。
目前的條碼掃描設(shè)備一般都是專用的條碼掃描設(shè)備,比如商場(chǎng)內(nèi)的與零售系統(tǒng)連接的條碼掃描器、圖書館內(nèi)的與圖書管理系統(tǒng)連接的條碼掃描器或醫(yī)院內(nèi)的與電腦系統(tǒng)連接的條碼掃描器,其可以采集到高質(zhì)量的條碼圖像,這樣可以較為容易的實(shí)現(xiàn)條碼的解碼。
很多便攜式電子設(shè)備比如手機(jī)、PDA(個(gè)人數(shù)字助理)等都配置有攝像頭裝置,利用所述攝像頭裝置用戶可以進(jìn)行拍攝照片和視頻等應(yīng)用。對(duì)于較低配置的攝像頭模組,比如存在于大量中低端手機(jī)中的攝像頭模組,由于是采用定焦鏡頭(fixed-focus lens),導(dǎo)致拍攝的圖像經(jīng)常由于對(duì)焦不準(zhǔn)而處于模糊狀態(tài)。這樣,通常的條碼定位方法難以在該類條碼圖像中定位條碼的位置。
因此,有必要提出一種改進(jìn)的在圖像中定位條碼的方法及裝置。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題之一在于提供一種條碼定位方法,其可以準(zhǔn)確的在圖像中定位條碼的位置。
本發(fā)明要解決的技術(shù)問題之一在于提供一種條碼定位裝置,其可以準(zhǔn)確的在圖像中定位條碼的位置。
為了解決上述問題,根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供了一種條碼定位方法,其包括在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn);和分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。
進(jìn)一步的,在圖像中設(shè)定搜索區(qū)域,在所述搜索區(qū)域內(nèi)進(jìn)行搜索邊界點(diǎn)。優(yōu)選的, 所述搜索區(qū)域位于在檢測(cè)出的條碼的上邊界和下邊界之間。
進(jìn)一步的,所述在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn)包括選取一行像素點(diǎn),取預(yù)定像素寬度的滑動(dòng)窗口,該滑動(dòng)窗 口從該行像素點(diǎn)的第一端開始朝向第二端逐像素進(jìn)行移動(dòng);每移動(dòng)到一個(gè)新的位置,比較所述滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值 的差異,當(dāng)該差異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于所述滑動(dòng)窗口之 內(nèi)。
更進(jìn)一步的,所述在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn)還包括
在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),統(tǒng) 計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最大值時(shí), 記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將選取的這些像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第一直線;
在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取的這些像 素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將確定是背景區(qū)域的像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線;
計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是該行像素點(diǎn)中的邊界點(diǎn)的 橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為該行像素點(diǎn)中的邊界點(diǎn)的縱坐標(biāo)。
進(jìn)一步的,所述的分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界包括將搜 索到的同側(cè)邊界點(diǎn)擬合成一條曲線;根據(jù)搜索到的同側(cè)邊界點(diǎn)到其擬合的曲線的距離判斷 是否有非法邊界點(diǎn),如果一個(gè)同側(cè)邊界點(diǎn)到其擬合的曲線的距離大于預(yù)定距離門限,則認(rèn) 為該同側(cè)邊界點(diǎn)為非法邊界點(diǎn);如果有,則去除非法邊界點(diǎn),并對(duì)剩余的同側(cè)邊界點(diǎn)再次擬 合成一條曲線,并根據(jù)該曲線確定邊界。
根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明提供了一種條碼定位裝置,其特征在于,其包 括邊界點(diǎn)搜索模塊,在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn);和邊界確定 模塊,分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。
進(jìn)一步的,在圖像中設(shè)定搜索區(qū)域,所述邊界點(diǎn)搜索模塊在所述搜索區(qū)域內(nèi)進(jìn)行 搜索邊界點(diǎn)。
進(jìn)一步的,所述邊界點(diǎn)搜索模塊搜索到一個(gè)邊界點(diǎn)的過程包括選取一行像素點(diǎn), 取預(yù)定像素寬度的滑動(dòng)窗口,該滑動(dòng)窗口從該行像素點(diǎn)的第一端開始朝向第二端逐像素進(jìn) 行移動(dòng);每移動(dòng)到一個(gè)新的位置,比較所述滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值的差異,當(dāng)該差 異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于所述滑動(dòng)窗口之內(nèi)。
更進(jìn)一步的,所述邊界點(diǎn)搜索模塊搜索到一個(gè)邊界點(diǎn)的過程還包括
在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),統(tǒng) 計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最大值時(shí), 記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將選取的這些像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第一直線;
在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取的這些像 素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將確定是背景區(qū)域的像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線;
計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是該行像素點(diǎn)中的邊界點(diǎn)的 橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為該行像素點(diǎn)中的邊界點(diǎn)的縱坐標(biāo)。
進(jìn)一步的,所述邊界確定模塊將搜索到的同側(cè)邊界點(diǎn)擬合成一條曲線;根據(jù)搜索 到的同側(cè)邊界點(diǎn)到其擬合的曲線的距離判斷是否有非法邊界點(diǎn),如果一個(gè)同側(cè)邊界點(diǎn)到其擬合的曲線的距離大于預(yù)定距離門限,則認(rèn)為該同側(cè)邊界點(diǎn)為非法邊界點(diǎn);如果有,則去除非法邊界點(diǎn),并對(duì)剩余的同側(cè)邊界點(diǎn)再次擬合成一條曲線,并根據(jù)該曲線確定邊界。
與現(xiàn)有技術(shù)相比,在本發(fā)明中通過像素點(diǎn)的灰度值變化來確定條碼的左右邊界點(diǎn),這樣降低了對(duì)圖像清晰度的要求,定位更為準(zhǔn)確。
關(guān)于本發(fā)明的其他目的,特征以及優(yōu)點(diǎn),下面將結(jié)合附圖在具體實(shí)施方式
中詳細(xì)描述。
結(jié)合參考附圖及接下來的詳細(xì)描述,本發(fā)明將更容易理解,其中同樣的附圖標(biāo)記對(duì)應(yīng)同樣的結(jié)構(gòu)部件,其中
圖1為本發(fā)明中的條碼定位方法在一個(gè)實(shí)施例中的流程示意圖2示出了在圖像中設(shè)定搜索區(qū)域的示例;
圖3示出了本發(fā)明中的在搜索區(qū)域中搜索邊界點(diǎn)的方法在一個(gè)實(shí)施例中的流程不意圖;和
圖4示出了利用滑動(dòng)窗口搜索邊界點(diǎn)的實(shí)例的示意圖;和
圖5為本發(fā)明中的條碼定位裝置在一個(gè)實(shí)施例中的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
本發(fā)明的詳細(xì)描述主要通過程序、步驟、邏輯塊、過程或其他象征性的描述來呈現(xiàn),其直接或間接地模擬本發(fā)明中的技術(shù)方案的運(yùn)作。所屬領(lǐng)域內(nèi)的技術(shù)人員使用此處的這些描述和陳述向所屬領(lǐng)域內(nèi)的其他技術(shù)人員有效的介紹他們的工作本質(zhì)。
此處所稱的“一個(gè)實(shí)施例”或“實(shí)施例”是指與所述實(shí)施例相關(guān)的特定特征、結(jié)構(gòu)或特性至少可包含于本發(fā)明至少一個(gè)實(shí)現(xiàn)方式中。在本說明書中不同地方出現(xiàn)的“在一個(gè)實(shí)施例中”并非必須都指同一個(gè)實(shí)施例,也不必須是與其他實(shí)施例互相排斥的單獨(dú)或選擇實(shí)施例。此外,表示一個(gè)或多個(gè)實(shí)施例的方法、流程圖或功能框圖中的模塊順序并非固定的指代任何特定順序,也不構(gòu)成對(duì)本發(fā)明的限制。
在進(jìn)行條碼定位前,一般需要獲取連續(xù)的視頻圖像幀,根據(jù)應(yīng)用場(chǎng)景對(duì)每幀視頻圖像進(jìn)行裁剪、尺寸變換以及彩色圖像轉(zhuǎn)灰度圖像等操作,從而生成固定尺寸的灰度圖像, 隨后在灰度圖像上進(jìn)行條碼檢測(cè),在檢測(cè)到有條碼之后再開始進(jìn)行條碼定位。本發(fā)明并不對(duì)圖像的獲取、預(yù)處理和在圖像中的條碼檢測(cè)進(jìn)行特別的限定,除本文有特別說明外,只要能夠獲得固定尺寸的灰度圖像,并在灰度圖像中檢測(cè)到有條碼即可。所述條碼定位的主要目的是確定條碼的左右邊界。
圖1為本發(fā)明中的條碼定位方法100在一個(gè)實(shí)施例中的流程示意圖。如圖1所示, 所述條碼定位方法包括步驟110,在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn); 步驟120,分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。
在一個(gè)實(shí)施例 中,在進(jìn)行圖1示出的條碼定位前,在條碼檢測(cè)過程中已經(jīng)在圖像中檢測(cè)到了條碼并且可以在圖像中檢測(cè)到了至少兩個(gè)條形區(qū)域及其端點(diǎn)。如圖2所示,其示出了進(jìn)行條碼定位的圖像(圖像邊界圍繞的區(qū)域)、檢測(cè)出的一個(gè)條形區(qū)域的條形端點(diǎn) 11和12、檢測(cè)出的另一個(gè)條形區(qū)域的條形端點(diǎn)21和22,根據(jù)條形區(qū)域的同側(cè)端點(diǎn)11和21 擬合而成的擬合直線I (可以看作是條碼的上邊界),根據(jù)條形區(qū)域的同側(cè)端點(diǎn)12和22擬 合而成的擬合直線2 (可以看作是條碼的下邊界)??梢钥闯?,條碼的左右邊界一定是位于 擬合直線I和2之間的。
在一個(gè)實(shí)施例中,為降低計(jì)算量,可以在圖像中設(shè)定搜索區(qū)域,該搜索區(qū)域可以根 據(jù)需要設(shè)定,在默認(rèn)的情況下可以等于整個(gè)圖像區(qū)域,條碼的定位是在搜索區(qū)域內(nèi)進(jìn)行的 搜索的。在一個(gè)優(yōu)選的實(shí)施例中,可以將搜索區(qū)域設(shè)定在擬合直線I和2之間,比如搜索區(qū) 域是一個(gè)橫向放置的矩形區(qū)域,其頂部不超過位于上端的擬合直線I的最低值,其底部不 低于位于下端的擬合直線2的最高值,其左右兩端則是在圖像的左右邊界附近。
在一個(gè)實(shí)施例中,步驟110可以根據(jù)下面將要詳細(xì)描述的在搜索區(qū)域中搜索邊界 點(diǎn)的方法依次搜索得到一定數(shù)量的左邊界點(diǎn)和一定數(shù)量的右邊界點(diǎn)。圖3示出了本發(fā)明中 的在搜索區(qū)域中搜索邊界點(diǎn)的方法300在一個(gè)實(shí)施例中的流程示意圖。需要注意的是,從 所述搜索區(qū)域的左邊界開始搜索條碼的左邊界點(diǎn),從所述搜索區(qū)域的右邊界開始搜索條碼 的右邊界點(diǎn)。為了對(duì)兩種邊界點(diǎn)的搜索方法進(jìn)行統(tǒng)一介紹,下面采用了第一邊界點(diǎn)和第二 邊界點(diǎn)的概念,第一邊界點(diǎn)為左邊界點(diǎn)和右邊界點(diǎn)中的一個(gè),第二邊界點(diǎn)為左邊界點(diǎn)和右 邊界點(diǎn)中的另一個(gè)。
如圖3所示,所述方法300包括如下步驟。
步驟310,從搜索區(qū)域中選取一行像素點(diǎn),取一個(gè)預(yù)定像素寬度的滑動(dòng)窗口,該滑 動(dòng)窗口從該行像素點(diǎn)的第一端(左端或右端中的一個(gè))開始朝向第二端(左端和右端的另 一個(gè))逐像素進(jìn)行移動(dòng)。所述預(yù)定像素寬度可以是指所述滑動(dòng)窗口包括預(yù)定個(gè)像素點(diǎn)。
步驟320,每移動(dòng)到一個(gè)新的位置,就會(huì)比較滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值的差 異,當(dāng)該差異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于滑動(dòng)窗口之內(nèi)。
請(qǐng)參圖4所示,其示出了搜索區(qū)域內(nèi)單行像素點(diǎn)的灰度值曲線、虛線框表示的滑 動(dòng)窗口和條碼的一個(gè)左邊界點(diǎn),縱坐標(biāo)軸表示像素點(diǎn)的灰度值,橫坐標(biāo)軸表示像素點(diǎn)在該 行像素點(diǎn)中的位置。
步驟310和320可以統(tǒng)稱為邊界點(diǎn)的粗略查找。
步驟330,在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像 素點(diǎn),統(tǒng)計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最 大值時(shí),記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo) 作為橫坐標(biāo),將它們的灰度值作為縱坐標(biāo),進(jìn)行線性擬合(Linear regression)得到第一直 線。
步驟340,在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取 的這些像素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在灰度圖像中的橫 坐標(biāo)作為橫坐標(biāo),將它們的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線。
在一個(gè)實(shí)施例中,可以根據(jù)下述方法來判斷一個(gè)像素點(diǎn)是否屬于背景區(qū)域計(jì)算 該像素點(diǎn)與相鄰像素點(diǎn)的灰度值差異,當(dāng)灰度值差異小于預(yù)定灰度值差異門限值的時(shí)候即 認(rèn)為該像素點(diǎn)與相鄰像素點(diǎn)同屬于背景區(qū)域。
步驟350,計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是在搜索區(qū)域中對(duì)應(yīng)該行像素點(diǎn)的第一邊界點(diǎn)的橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為第一邊界點(diǎn)的縱坐標(biāo)。
如圖4所示,所述第一直線類似于左邊界點(diǎn)的右側(cè)的像素灰度線,所述第二直線 類似于左邊界點(diǎn)的左側(cè)的像素灰度線,兩條像素灰度線交匯處即為邊界像素點(diǎn)。
這樣就找到了一個(gè)第一邊界點(diǎn)。同樣的,在搜索區(qū)域內(nèi)另選一行像素點(diǎn),之后從使 該滑動(dòng)窗口從該行像素點(diǎn)的第一端開始朝向第二端逐像素進(jìn)行移動(dòng),進(jìn)而找到另一個(gè)第一 邊界點(diǎn)。同理,可以將滑動(dòng)窗口從第二端向第一端逐像素滑動(dòng)就可以在搜索區(qū)域內(nèi)搜索一 定數(shù)量的第二邊界點(diǎn)。
步驟330、340和350可以統(tǒng)稱為邊界點(diǎn)的精確定位查找。
在一個(gè)實(shí)施例中,步驟120中的基于搜索到的左邊界點(diǎn)確定條碼的左邊界的步驟 包括如下操作
將搜索到的左邊界點(diǎn)(同側(cè)邊界點(diǎn))擬合成一條曲線,該曲線在搜索到的左邊界 點(diǎn)附近的曲率需要小于一個(gè)預(yù)定曲率門限值;
根據(jù)搜索到的左邊界點(diǎn)到所述曲線的距離判斷是否有非法左邊界點(diǎn),如果搜索到 的一個(gè)左邊界點(diǎn)到所述曲線的距離大于預(yù)定距離門限,則認(rèn)為該邊界點(diǎn)為非法邊界點(diǎn);和
如果有,則去除非法左邊界點(diǎn),并對(duì)剩余的左邊界點(diǎn)再次擬合成一條曲線,并基于 該曲線確定左邊界。
同樣的,可以采用同樣的操作來基于搜索到的右邊界點(diǎn)得到條碼的右邊界。
本發(fā)明中的條碼定位方案還可以實(shí)現(xiàn)為一種裝置,圖5為本發(fā)明中的條碼定位裝 置500在一個(gè)實(shí)施例中的結(jié)構(gòu)示意圖。如圖5所示,所述條碼定位裝置500包括邊界點(diǎn)搜 索模塊510和邊界確定模塊520。所述邊界點(diǎn)搜索模塊510在圖像中搜索至少兩個(gè)左邊界 點(diǎn)和至少兩個(gè)右邊界點(diǎn)。所述邊界確定模塊520分別基于搜索到的左右邊界點(diǎn)確定條碼的 左右邊界。
在一個(gè)實(shí)施例中,在圖像中設(shè)定搜索區(qū)域,所述邊界點(diǎn)搜索模塊在所述搜索區(qū)域 內(nèi)進(jìn)行搜索邊界點(diǎn)。
所述邊界點(diǎn)搜索模塊510搜索到一個(gè)邊界點(diǎn)的過程包括
選取一行像素點(diǎn),取預(yù)定像素寬度的滑動(dòng)窗口,該滑動(dòng)窗口從該行像素點(diǎn)的第一 端開始朝向第二端逐像素進(jìn)行移動(dòng);
每移動(dòng)到一個(gè)新的位置,比較所述滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值的差異,當(dāng)該 差異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于所述滑動(dòng)窗口之內(nèi);
在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),統(tǒng) 計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最大值時(shí), 記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將選取的這些像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第一直線;
在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取的這些像 素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐 標(biāo),將確定是背景區(qū)域的像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線;
計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是該行像素點(diǎn)中的邊界點(diǎn)的 橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為該行像素點(diǎn)中的邊界點(diǎn)的縱坐標(biāo)。
所述邊界確定模塊520將搜索到的同側(cè)邊界點(diǎn)擬合成一條曲線;根據(jù)搜索到的同側(cè)邊界點(diǎn)到其擬合的曲線的距離判斷是否有非法邊界點(diǎn),如果一個(gè)同側(cè)邊界點(diǎn)到其擬合的 曲線的距離大于預(yù)定距離門限,則認(rèn)為該同側(cè)邊界點(diǎn)為非法邊界點(diǎn);如果有,則去除非法邊 界點(diǎn),并對(duì)剩余的同側(cè)邊界點(diǎn)再次擬合成一條曲線,并根據(jù)該曲線確定邊界。
在本發(fā)明中通過像素點(diǎn)的灰度值變化來確定條碼的左右邊界點(diǎn),這樣降低了對(duì)圖 像清晰度的要求,定位更為準(zhǔn)確。
本文中的“和/或”表示和或者或,比如A、B和/或C,包括A、B、C、AB、AC、BC、ABC幾種情況。
上文對(duì)本發(fā)明進(jìn)行了足夠詳細(xì)的具有一定特殊性的描述。所屬領(lǐng)域內(nèi)的普通技術(shù) 人員應(yīng)該理解,實(shí)施例中的描述僅僅是示例性的,在不偏離本發(fā)明的真實(shí)精神和范圍的前 提下做出所有改變都應(yīng)該屬于本發(fā)明的保護(hù)范圍。本發(fā)明所要求保護(hù)的范圍是由所述的權(quán) 利要求書進(jìn)行限定的,而不是由實(shí)施例中的上述描述來限定的。
權(quán)利要求
1.一種條碼定位方法,其特征在于,其包括 在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn);和 分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。
2.根據(jù)權(quán)利要求1所述的條碼定位方法,其特征在于,在圖像中設(shè)定搜索區(qū)域,在所述搜索區(qū)域內(nèi)進(jìn)行搜索邊界點(diǎn)。
3.根據(jù)權(quán)利要求2所述的條碼定位方法,其特征在于,所述搜索區(qū)域位于在檢測(cè)出的條碼的上邊界和下邊界之間。
4.根據(jù)權(quán)利要求1所述的條碼定位方法,其特征在于,所述在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn)包括 選取一行像素點(diǎn),取預(yù)定像素寬度的滑動(dòng)窗口,該滑動(dòng)窗口從該行像素點(diǎn)的第一端開始朝向第二端逐像素進(jìn)行移動(dòng); 每移動(dòng)到一個(gè)新的位置,比較所述滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值的差異,當(dāng)該差異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于所述滑動(dòng)窗口之內(nèi)。
5.根據(jù)權(quán)利要求4所述的條碼定位方法,其特征在于,所述在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn)還包括 在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),統(tǒng)計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最大值時(shí),記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐標(biāo),將選取的這些像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第一直線; 在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取的這些像素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐標(biāo),將確定是背景區(qū)域的像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線; 計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是該行像素點(diǎn)中的邊界點(diǎn)的橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為該行像素點(diǎn)中的邊界點(diǎn)的縱坐標(biāo)。
6.根據(jù)權(quán)利要求1-5任一所述的條碼定位方法,其特征在于,所述的分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界包括 將搜索到的同側(cè)邊界點(diǎn)擬合成一條曲線;根據(jù)搜索到的同側(cè)邊界點(diǎn)到其擬合的曲線的距離判斷是否有非法邊界點(diǎn),如果一個(gè)同側(cè)邊界點(diǎn)到其擬合的曲線的距離大于預(yù)定距離門限,則認(rèn)為該同側(cè)邊界點(diǎn)為非法邊界點(diǎn);如果有,則去除非法邊界點(diǎn),并對(duì)剩余的同側(cè)邊界點(diǎn)再次擬合成一條曲線,并根據(jù)該曲線確定邊界。
7.—種條碼定位裝置,其特征在于,其包括 邊界點(diǎn)搜索模塊,在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn);和 邊界確定模塊,分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。
8.根據(jù)權(quán)利要求7所述的條碼定位裝置,其特征在于,在圖像中設(shè)定搜索區(qū)域,所述邊界點(diǎn)搜索模塊在所述搜索區(qū)域內(nèi)進(jìn)行搜索邊界點(diǎn)。
9.根據(jù)權(quán)利要求7所述的條碼定位裝置,其特征在于,所述邊界點(diǎn)搜索模塊搜索到一個(gè)邊界點(diǎn)的過程包括 選取一行像素點(diǎn),取預(yù)定像素寬度的滑動(dòng)窗口,該滑動(dòng)窗口從該行像素點(diǎn)的第一端開始朝向第二端逐像素進(jìn)行移動(dòng);每移動(dòng)到一個(gè)新的位置,比較所述滑動(dòng)窗口左右兩側(cè)像素點(diǎn)灰度值的差異,當(dāng)該差異超過預(yù)定灰度值差異門限值時(shí),即認(rèn)為邊界點(diǎn)已經(jīng)位于所述滑動(dòng)窗口之內(nèi)。
10.根據(jù)權(quán)利要求9所述的條碼定位裝置,其特征在于,所述邊界點(diǎn)搜索模塊搜索到一個(gè)邊界點(diǎn)的過程還包括 在所述滑動(dòng)窗口中每一像素點(diǎn)的靠近第二端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),統(tǒng)計(jì)選取的這些像素點(diǎn)的左端點(diǎn)和右端點(diǎn)的灰度值差異,當(dāng)所述灰度值差異達(dá)到最大值時(shí),記錄所述滑動(dòng)窗口中對(duì)應(yīng)的像素點(diǎn)位置,將選取的這些像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐標(biāo),將選取的這些像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第一直線; 在記錄的像素點(diǎn)的靠近第一端的一側(cè)選取預(yù)定數(shù)量的像素點(diǎn),找到選取的這些像素點(diǎn)中的屬于背景區(qū)域的像素點(diǎn),將確定是背景區(qū)域的像素點(diǎn)在圖像中的橫坐標(biāo)作為橫坐標(biāo),將確定是背景區(qū)域的像素點(diǎn)的灰度值作為縱坐標(biāo),進(jìn)行線性擬合得到第二直線; 計(jì)算第一直線和第二直線的交點(diǎn),該交點(diǎn)的橫坐標(biāo)就是該行像素點(diǎn)中的邊界點(diǎn)的橫坐標(biāo),該行像素點(diǎn)的縱坐標(biāo)為該行像素點(diǎn)中的邊界點(diǎn)的縱坐標(biāo)。
11.根據(jù)權(quán)利要求7所述的條碼定位裝置,其特征在于,所述邊界確定模塊將搜索到的同側(cè)邊界點(diǎn)擬合成一條曲線;根據(jù)搜索到的同側(cè)邊界點(diǎn)到其擬合的曲線的距離判斷是否有非法邊界點(diǎn),如果一個(gè)同側(cè)邊界點(diǎn)到其擬合的曲線的距離大于預(yù)定距離門限,則認(rèn)為該同側(cè)邊界點(diǎn)為非法邊界點(diǎn);如果有,則去除非法邊界點(diǎn),并對(duì)剩余的同側(cè)邊界點(diǎn)再次擬合成一條曲線,并根據(jù)該曲線確定邊界。
全文摘要
本發(fā)明公開了一種條碼定位方法及裝置,所述方法包括在圖像中搜索至少兩個(gè)左邊界點(diǎn)和至少兩個(gè)右邊界點(diǎn);分別基于搜索到的左右邊界點(diǎn)確定條碼的左右邊界。在本發(fā)明中通過像素點(diǎn)的灰度值變化來確定條碼的左右邊界點(diǎn),這樣降低了對(duì)圖像清晰度的要求,定位更為準(zhǔn)確。
文檔編號(hào)G06K7/10GK103034833SQ20111037546
公開日2013年4月10日 申請(qǐng)日期2011年11月23日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者陳凌 申請(qǐng)人:無錫愛丁閣信息科技有限公司