高 聰
(黃河水利職業(yè)技術(shù)學(xué)院,河南 開(kāi)封 475000)
圖像傾斜校正是數(shù)字圖像處理技術(shù)中的重要處理方法,用途極為廣泛。隨著對(duì)工業(yè)生產(chǎn)效率和產(chǎn)品質(zhì)量檢測(cè)要求的提高,對(duì)數(shù)字圖像處理的計(jì)算速度和檢測(cè)精度提出了新的挑戰(zhàn)。針對(duì)這一難題,提出一種具有顯著特征圖像的傾斜校正算法。
本課題圖像傾斜校正算法采用“顯著特征的標(biāo)記圖像十字線”設(shè)計(jì)方案。該方案以標(biāo)記圖像十字線為圖像處理核心,并給出具體傾斜校正算法和處理方法。在標(biāo)記圖像處理過(guò)程中,首先通過(guò)直線擬合獲取標(biāo)記圖像的傾斜角度。其次,根據(jù)標(biāo)記圖像的特征對(duì)傾斜校正算法進(jìn)行研究。最后,對(duì)圖像插值方法進(jìn)行優(yōu)化。該圖像傾斜校正算法具有較高的計(jì)算速度和檢測(cè)精度,適用于對(duì)工業(yè)產(chǎn)品表面質(zhì)量檢測(cè)有較高速度和精度要求的領(lǐng)域。
在標(biāo)記圖像采集過(guò)程中,由于受工業(yè)生產(chǎn)環(huán)境的影響,難免對(duì)標(biāo)記圖像的采集造成不同程度的傾斜。在對(duì)標(biāo)記圖像進(jìn)行傾斜校正的處理過(guò)程中,首先要獲取標(biāo)記圖像的傾斜角度。獲取傾斜角度的方式主要采用標(biāo)記圖像邊緣點(diǎn)直線擬合。標(biāo)記圖像是具有顯著特征的十字線標(biāo)記。為提高檢測(cè)速度和檢測(cè)精度,采用霍夫變換算法對(duì)標(biāo)記圖像進(jìn)行直線擬合,以獲取傾斜角度。
霍夫變換將圖像像素空間變換到參數(shù)空間進(jìn)行處理。通過(guò)在參數(shù)空間檢測(cè)特征點(diǎn)進(jìn)行直線擬合。
霍夫變換的基本算法:假設(shè)(x,y)是直角坐標(biāo)系中的一個(gè)坐標(biāo)點(diǎn),經(jīng)過(guò)該坐標(biāo)點(diǎn)的直線有無(wú)數(shù)條。經(jīng)過(guò)該坐標(biāo)點(diǎn)的直線均符合公式(1):
式中:為斜率;為截距。對(duì)式(1)進(jìn)行變換得到式(2):
式中,將,作為新的參數(shù)向量,建立新的坐標(biāo)系。該方程的斜率和截距分別定義為x,y。將該方程轉(zhuǎn)換為參數(shù)空間后如圖1所示。假設(shè)(x,y)是直角坐標(biāo)系中的一點(diǎn),則該點(diǎn)映射為霍夫變換空間中的一條直線=-xa+y。同理,(x,y)是直角坐標(biāo)系中的另一點(diǎn),則該點(diǎn)映射為霍夫變換空間中的另一條直線=-xa+y。反之,經(jīng)過(guò)坐標(biāo)點(diǎn)(x,y)和(x,y)的直線對(duì)應(yīng)霍夫變換空間一點(diǎn)(,)。在霍夫變換空間中的兩條直線的交點(diǎn)為坐標(biāo)(,),同時(shí),、分別為直角坐標(biāo)系中直線的斜率和截距。由此得出,直角坐標(biāo)系中的直線上的所有坐標(biāo)點(diǎn)對(duì)應(yīng)于霍夫變換空間中的一簇直線,同時(shí),這些直線均相交于一個(gè)坐標(biāo)點(diǎn)。反之,霍夫變換空間的一個(gè)坐標(biāo)點(diǎn)對(duì)應(yīng)于直角坐標(biāo)系中的一條直線。
圖1 直角坐標(biāo)與參數(shù)空間的對(duì)應(yīng)關(guān)系
通過(guò)將直角坐標(biāo)系轉(zhuǎn)換為霍夫變換空間的方式,能夠輕松計(jì)算出直線的傾斜角度。但利用這種方法檢測(cè)直線時(shí)會(huì)遇到一種特殊情況,即當(dāng)直線為90°時(shí),其直線對(duì)應(yīng)的斜率為無(wú)窮大,此時(shí)該方法不能對(duì)直線進(jìn)行處理。
為避免這種特殊情況,將檢測(cè)方法轉(zhuǎn)換為極坐標(biāo)的形式進(jìn)行計(jì)算,從而避免斜率無(wú)窮大的直線。極坐標(biāo)表達(dá)式如公式(3)所示:
式中,角為軸與原點(diǎn)到直線距離線段的夾角;為直線到原點(diǎn)的垂直距離。直角坐標(biāo)系與極坐標(biāo)系關(guān)系如圖2所示。
圖2 直角坐標(biāo)系與極坐標(biāo)系關(guān)系
其基本原理與參數(shù)空間類(lèi)似,將直角坐標(biāo)系中的一個(gè)坐標(biāo)點(diǎn)映射為極坐標(biāo)中的一條曲線。直角坐標(biāo)系中的一條直線映射為極坐標(biāo)系中的一簇曲線,并且這些曲線相交于一點(diǎn)(,)。該極坐標(biāo)點(diǎn)中的參數(shù)就是所求直角擬合后的斜率相關(guān)參數(shù)。從而將計(jì)算標(biāo)記圖像的傾斜角度轉(zhuǎn)換為尋找霍夫變換空間中的極大值點(diǎn),這樣就將圖像處理問(wèn)題轉(zhuǎn)變?yōu)榱藬?shù)學(xué)問(wèn)題。
具體的直線擬合算法如下:
假設(shè)一幅標(biāo)記圖像為,其尺寸為×。圖像中任一點(diǎn)(x,y)處的像素值為(x,y)。在霍夫變換空間中將平均賦值為個(gè)離散值,且滿(mǎn)足∈[0, π),為采樣的個(gè)數(shù)。定義參數(shù)空間直線擬合公式如式(4)所示:
式中,=0, 1, ...,-1,=0, 1, ...,-1。
在顯著特征的標(biāo)記圖像中,采用霍夫變換參數(shù)空間直線擬合的方法:
(1)對(duì)(,)參數(shù)空間做離散化處理,并定義對(duì)應(yīng)的累加器,初始化為0。
(2)對(duì)標(biāo)記圖像進(jìn)行搜索,并定義每一個(gè)坐標(biāo)點(diǎn)(x,y)處的極坐標(biāo)方程=xcos+ysin。
(3)在霍夫變換參數(shù)空間中計(jì)算所對(duì)應(yīng)的,確定(,)。
(4)搜索整幅標(biāo)記圖像,將獲取的值(,)對(duì)應(yīng)的累加器加1。
計(jì)算完畢后,找到最大的值,并標(biāo)記對(duì)應(yīng)的(,)。此時(shí),參數(shù)(,)即為直線擬合對(duì)應(yīng)的相關(guān)參數(shù)。
顯著特征標(biāo)記圖像采用霍夫變換直線擬合的參數(shù)空間示意圖,如圖3所示。標(biāo)記圖像在參數(shù)空間中形成了很多白色點(diǎn),這就將直線擬合問(wèn)題轉(zhuǎn)變?yōu)榱藢ふ覅?shù)空間中最亮的白色點(diǎn)。該點(diǎn)對(duì)應(yīng)的即為所求直線擬合的參數(shù)?;舴蜃儞Q對(duì)直線擬合的條件要求較低,其有較好的抗噪聲能力,且其檢測(cè)精度較高,計(jì)算速度快。
圖3 霍夫變換示意圖
通過(guò)直線擬合獲取標(biāo)記圖像傾斜角度后,要對(duì)標(biāo)記圖像進(jìn)行傾斜校正。在傾斜校正過(guò)程中對(duì)圖像的細(xì)節(jié)特征會(huì)造成損失,因此會(huì)影響檢測(cè)精度。所以對(duì)標(biāo)記圖像傾斜校正的研究具有重要意義。
圖像校正的算法如下:假設(shè)一幅標(biāo)記圖像為,其中的一個(gè)像素點(diǎn)為(,)。將該像素點(diǎn)順時(shí)針旋轉(zhuǎn)角度,則旋轉(zhuǎn)后的像素點(diǎn)坐標(biāo)位置為(,)。圖像旋轉(zhuǎn)示意圖如圖4所示。
圖4 圖像旋轉(zhuǎn)示意圖
圖4中,為像素點(diǎn)到坐標(biāo)原點(diǎn)的距離,為像素點(diǎn)到坐標(biāo)原點(diǎn)的直線與軸夾角,則像素點(diǎn)可用公式(5)表示:
旋轉(zhuǎn)角度后的像素點(diǎn)可表示為公式(6)所示:
將公式(6)轉(zhuǎn)換為矩陣形式,如式(7)所示:
逆變換為式(8)所示:
在圖像旋轉(zhuǎn)過(guò)程中,如果采用公式(7)計(jì)算,則可能會(huì)出現(xiàn)標(biāo)記圖像旋轉(zhuǎn)后無(wú)對(duì)應(yīng)像素點(diǎn)的現(xiàn)象。因?yàn)橄袼攸c(diǎn)坐標(biāo)均為整數(shù),所以將坐標(biāo)旋轉(zhuǎn)公式進(jìn)行逆變換。即采用反向映射方法,將旋轉(zhuǎn)后的像素點(diǎn)按照映射關(guān)系確定原像素點(diǎn)。公式(8)即為旋轉(zhuǎn)坐標(biāo)公式。
在實(shí)際工程問(wèn)題中,一般都是以圖像中心為原點(diǎn)進(jìn)行校正。因此在對(duì)圖像校正之前,要進(jìn)行坐標(biāo)變換。坐標(biāo)系變換如圖5所示。
圖5 坐標(biāo)系轉(zhuǎn)換示意圖
利用坐標(biāo)校正公式(13)進(jìn)行計(jì)算時(shí),主要針對(duì)的數(shù)據(jù)類(lèi)型為浮點(diǎn)型。因?yàn)樾U蟮南袼刈鴺?biāo)可能是非整數(shù),即校正后圖像像素找不到對(duì)應(yīng)的原圖像像素。所以要將非整數(shù)像素坐標(biāo)變?yōu)檎麛?shù)像素坐標(biāo),即圖像插值。圖像插值的計(jì)算速度和精度是矛盾的,因此需要根據(jù)實(shí)際工程來(lái)確定插值算法。計(jì)算速度和精度取折中的最優(yōu)算法是雙線性插值方法。
雙線性插值算法的原理:設(shè)校正后某一個(gè)像素點(diǎn)在原圖的映射坐標(biāo)為 (,),灰度值為(,)。(,),(+1,),(+1,+1),(,+1)分別為(,)4個(gè)相鄰點(diǎn),且≤≤+1,≤≤+1。對(duì)應(yīng)的灰度值為(,),(,+1),(+1,+1),(,+1)。
(1)由(,)和(+1,)的灰度值求出(,)的值,如式(15)所示:
(2) 再由(,+1)和(+1,+1)求出(,+1)的值。如式(16)所示:
(3) 最后由(,)和(,+1)的值求出(,)。即式(17)所示:
在插值算法過(guò)程中,定義[]為不超過(guò)的最大整數(shù)值。式(17)中,=[],=[],=-[],=-[]。雙線性插值法如圖6所示。
圖6 雙線性插值法
標(biāo)記圖像校正如圖7所示。
圖7 標(biāo)記圖像校正效果圖
本文對(duì)顯著特征的標(biāo)記圖像傾斜校正算法進(jìn)行了研究。通過(guò)分析實(shí)際工程中對(duì)計(jì)算速度和檢測(cè)精度的要求,提出一種更優(yōu)的校正算法。該算法不僅具有較高的計(jì)算速度,同時(shí)也保護(hù)了標(biāo)記圖像的邊緣特征點(diǎn),從而提高了檢測(cè)精度。最終破解了計(jì)算速度和檢測(cè)精度間的矛盾。該圖像校正方法適用于對(duì)圖像處理速度和檢測(cè)精度均有較高要求的場(chǎng)合。