田高華,徐曉宇,吳金華,劉秋生
?
基于光照補(bǔ)償算法的二維碼圖像增強(qiáng)工具設(shè)計(jì)
田高華,徐曉宇,吳金華,劉秋生
(江西應(yīng)用技術(shù)職業(yè)學(xué)院,江西 贛州 341000)
針對(duì)二維碼使用過程中出現(xiàn)的破損問題,設(shè)計(jì)一種基于光照補(bǔ)償算法的二維碼圖像增強(qiáng)工具。確定點(diǎn)陣二維碼中單個(gè)模塊內(nèi)部孔洞的具體像素位置,并利用鄰域像素替換原孔洞像素值,最終使點(diǎn)陣與背景區(qū)分開,同時(shí)保證點(diǎn)陣的間隙和極性不發(fā)生變化。設(shè)計(jì)的算法經(jīng)過實(shí)驗(yàn)分析可以實(shí)現(xiàn)破損二維碼的識(shí)別,通過精度分析和效率分析驗(yàn)證該算法的實(shí)用性,初步解決了部分二維碼損壞導(dǎo)致的不能識(shí)別的問題。
光照補(bǔ)償;二維碼;算法工具;精度分析
二維碼作為一種信息傳播的載體,已經(jīng)深入到人們的日常生活中,隨著使用頻率和使用時(shí)間的增多,經(jīng)常會(huì)出現(xiàn)破損情況。本文設(shè)計(jì)一種基于光照補(bǔ)償算法的二維碼圖像增強(qiáng)工具,工具設(shè)計(jì)主要包括工具定義、算法設(shè)計(jì)、軟件設(shè)計(jì)、實(shí)驗(yàn)分析這4方面內(nèi)容。工具定義,介紹光照補(bǔ)償工具的功能及應(yīng)用場(chǎng)合;算法設(shè)計(jì),設(shè)計(jì)工具具體的流程與算法;軟件設(shè)計(jì),依據(jù)算法設(shè)計(jì)軟件的模塊及主要功能函數(shù);實(shí)驗(yàn)分析,對(duì)工具的功能進(jìn)行測(cè)試[1]。
光照、材質(zhì)、形成方式等原因會(huì)造成點(diǎn)陣像素灰度分布不均、點(diǎn)陣內(nèi)部可能會(huì)存在孔洞,類似于“甜甜圈”效應(yīng),即點(diǎn)陣中心的像素灰度值與背景更接近,從而影響后續(xù)信號(hào)提取[2]。光照補(bǔ)償工具的目的是消除點(diǎn)陣模式的非一致性,對(duì)點(diǎn)陣中的孔洞位置進(jìn)行鄰域像素填充,最終使點(diǎn)陣與背景區(qū)分開、點(diǎn)陣像素灰度值均勻化。
光照補(bǔ)償工具的基本思想是:確定點(diǎn)陣二維碼中單個(gè)模塊內(nèi)部孔洞的具體像素位置,并利用鄰域像素替換原孔洞像素值,最終使點(diǎn)陣與背景區(qū)分開,同時(shí)保證點(diǎn)陣的間隙和極性不發(fā)生變化。算法設(shè)計(jì)首先確定點(diǎn)陣中所有孔洞的具體像素位置,然后利用孔洞鄰域像素替換孔洞像素,對(duì)替換孔洞像素后的圖像進(jìn)行平滑。
確定點(diǎn)陣孔洞位置的基本思想是找出二維碼點(diǎn)陣模塊中的孔洞位置,算法分析過程如圖1所示:①進(jìn)行二值化處理,突出點(diǎn)陣與點(diǎn)陣孔洞之間的差異;②進(jìn)行形態(tài)學(xué)開、閉處理,填充孔洞,方便后續(xù)做比較確定孔洞準(zhǔn)確位置;③確定孔洞位置,通過比較二值圖像和形態(tài)學(xué)開、閉處理后的圖像的像素差異,確定孔洞位置[3]。
圖1 孔洞位置確定過程圖
替換孔洞像素的基本思想是使孔洞區(qū)域的鄰域像素覆蓋孔洞。原始圖像經(jīng)過形態(tài)學(xué)腐蝕、膨脹處理,獲取到孔洞區(qū)域的期望像素值,在經(jīng)過替換孔洞像素,把孔洞期望像素值替換到原圖中的孔洞位置上。
2.3.1 形態(tài)學(xué)腐蝕和膨脹
形態(tài)學(xué)腐蝕和膨脹處理的基本思想是確定孔洞區(qū)域的期望像素值。實(shí)現(xiàn)方法為對(duì)原圖進(jìn)行(+1)/2次(為孔洞尺寸)腐蝕或膨脹處理,目的是使孔洞的期望像素值接近點(diǎn)陣像素值。
2.3.2 替換孔洞像素
替換孔洞的基本思想是將孔洞期望像素值替換到原圖中的孔洞上,如圖2所示。即對(duì)已經(jīng)確定的孔洞位置,用孔洞期望像素值替換原像素。
圖2 替換孔洞像素
平滑圖像主要步驟是使用平滑濾波器對(duì)替換孔洞像素后的圖像進(jìn)行平滑處理。實(shí)現(xiàn)方法為使用3×3大小的均值濾波器。
光照工具以C++類的形式封裝在svBaseTools動(dòng)態(tài)庫,類名scIlluminationCompensation。按照算法設(shè)計(jì)的基本思路,光照工具的軟件分為參數(shù)設(shè)置、執(zhí)行操作。各部分的主要的功能接口函數(shù)如表1所示。
根據(jù)設(shè)計(jì)要求,針對(duì)光照補(bǔ)償工具進(jìn)行精度和效率兩方面進(jìn)行試驗(yàn)分析。精度分析主要是觀察點(diǎn)陣的光照補(bǔ)償結(jié)果,能否使點(diǎn)陣區(qū)域像素與背景明顯區(qū)分開,破損的二維碼經(jīng)過光照補(bǔ)償后,原圖點(diǎn)陣中的孔洞位置已經(jīng)被點(diǎn)陣鄰域像素所覆蓋,點(diǎn)陣與背景的區(qū)別更加明顯。針對(duì)執(zhí)行效率進(jìn)行分析,分別測(cè)試了在不同圖像大小和尺寸的條件下,工具的執(zhí)行效率。光照補(bǔ)償工具的執(zhí)行效率與圖像大小和點(diǎn)陣孔洞尺寸成正比,在500萬像素,點(diǎn)陣孔洞尺寸為7個(gè)像素的條件下,執(zhí)行時(shí)間在100 ms以內(nèi)。經(jīng)過反復(fù)試驗(yàn)本設(shè)計(jì)能夠達(dá)到精度和效率指標(biāo)。
本文設(shè)計(jì)的二維碼圖像處理工具,對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行效率分析和精度分析,處理過的圖像點(diǎn)陣像素較為均勻,光照補(bǔ)償工具基本達(dá)到設(shè)計(jì)要求。
表1 光照補(bǔ)償工具主要功能函數(shù)(表格制作部規(guī)范)
類別功能函數(shù)說明 構(gòu)造/析構(gòu)scIlluminationCompensation~scIlluminationCompensation無參構(gòu)造析構(gòu)函數(shù) 參數(shù)相關(guān)SetModulePolarityGetModulePolarity設(shè)置獲取點(diǎn)陣極性 SetThresholdGetThreshold設(shè)置獲取二值化閾值 SetModuleSizeGetModuleSize設(shè)置獲取點(diǎn)陣中心孔洞尺寸 執(zhí)行相關(guān)Execute執(zhí)行光照補(bǔ)償
[1]歐煥銳.QR二維碼識(shí)別算法及其在新型門禁系統(tǒng)中應(yīng)用的研究[D].浙江:浙江大學(xué),2018.
[2]黃麗雯,楊歡歡.多方法結(jié)合人臉圖像光照補(bǔ)償算法研究及改進(jìn)[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,31(11):179-184.
[3]肖曉,張健.改進(jìn)的Retinex低照度圖像光照補(bǔ)償算法[J].電子設(shè)計(jì)工程,2017,25(04):110-114.
[4]高涵.模式識(shí)別中光照補(bǔ)償處理算法研究[D].北京:北京理工大學(xué),2016.
2095-6835(2018)18-0052-02
TP391.41
A
10.15913/j.cnki.kjycx.2018.18.052
田高華(1991—),女,研究生,助教,研究方向?yàn)橥ㄐ殴こ獭?/p>
〔編輯:嚴(yán)麗琴〕