摘要:本文通過比較不同邊緣檢測算法的實際效果,來選擇一種運算速度快、邊緣定位準確、噪聲抑制能力強的邊緣檢測算法,實現(xiàn)結(jié)構(gòu)光調(diào)制圖像標定數(shù)據(jù)的提取。
關(guān)鍵詞:結(jié)構(gòu)光;邊緣檢測;邊界搜索
1 引言
按照系統(tǒng)結(jié)構(gòu)光三維重建系統(tǒng)設(shè)計,用邊緣提取方法實現(xiàn)光條邊緣位置信息精確提取是獲取標定用樣本數(shù)據(jù)的一個重要環(huán)節(jié)。圖1所示的就是待處理的經(jīng)過灰度化的結(jié)構(gòu)光調(diào)制圖像的圖像。本文通過對實際實驗圖像處理效果的比較,選擇合適的圖像處理[1]方法來實現(xiàn)結(jié)構(gòu)光光條邊緣位置信息的提取。
2 光條邊緣位置提取的實現(xiàn)流程
結(jié)構(gòu)光調(diào)制圖像中光條邊緣位置坐標[2]的提取實現(xiàn)流程如圖2所示,有如下四個步驟:圖像濾波、圖像增強、邊緣檢測、邊界搜索。
1)圖像濾波
從圖1所示來看,待處理圖像處在的噪聲還是相當明顯的,需要用圖像濾波的方法來平滑圖像,常用方法即采用均值濾波或中值濾波[3]。實驗通過對兩種方法的比較,在采用較大滑動窗口時,均值濾波的方法容易使圖像邊緣變得模糊,而中值濾波其濾除噪聲的能力下降。
實驗通過對不同滑動窗口的濾波效果比較發(fā)現(xiàn),采用3×3滑動窗口的均值濾波器和中值濾波器都可以獲得比較好的濾波效果。具體采用哪種濾波器還要參考圖像增強后的效果。
2)圖像增強
圖像增強的目的是為了使圖像的邊緣、輪廓線以及圖像的細節(jié)變得清晰。實驗發(fā)現(xiàn)拉普拉斯高通濾波器能使圖中各區(qū)域的邊界得到較明顯增強的同時慮除低頻分量,使圖中原來比較平滑區(qū)域內(nèi)部的灰度動態(tài)范圍被壓縮。
圖3所示的是經(jīng)過3×3中值濾波圖像采用拉普拉斯圖像增強的結(jié)果,而圖4所示為經(jīng)過3×3均值濾波圖像的拉普拉斯圖像增強效果。通過比較兩圖,發(fā)現(xiàn)中值濾波的圖像還存在較強的噪聲,所以對本圖像采用均值濾波的方法可以取得比較好的效果。
3)邊緣檢測
在MATLAB環(huán)境下,edge函數(shù)利用前面介紹的邊緣檢測算子來檢測圖像邊緣。edge函數(shù)可以指定一個灰度閾值,只有滿足這個閾值條件的點才視為邊界點。edge函數(shù)對灰度圖像I進行邊緣檢測,返回與I大小相同的二值圖像,其中1表示I中的邊緣,0代表非邊緣。
在邊緣檢測中邊緣定位能力和噪聲抑制能力是一對矛盾體,就各種算法而言,有的邊緣定位能力比較強,有的抗噪聲能力比較好;而對某些算子,參數(shù)的選擇也直接影響到邊緣定位能力和噪聲抑制能力的強弱。以下就實際測試結(jié)果,具體介紹各個算子[7]的特點:
Roberts該算子對具有陡峭的低噪聲圖像響應(yīng)最好,邊緣定位精度較高,但容易丟失一部分邊緣,如圖5(a)所示,其中部分邊緣沒有被檢測出來,造成邊緣斷裂。
Marr-Hildreth算子[4]:如圖5(b)所示該算子對噪聲的抑制作用比較明顯,但同時也可能將原有的邊緣也平滑了,造成某些邊緣無法檢測到。此外,對于高斯函數(shù)中方差參數(shù) 的不同選擇,對圖像邊緣檢測效果有很大的影響。
Canny算子[5]:所采用的一階微分算子的方向性較M-H算子要好,因此邊緣定位準確性較高,如圖5(c)所示,其檢測效果優(yōu)于其它檢測算子。
通過實驗結(jié)果可以看出,Canny算子是傳統(tǒng)邊緣檢測算子中效果較好的算子之一,在本系統(tǒng)的實際數(shù)據(jù)提取時用的就是基于Canny算子的邊緣檢測方法。
4) 圖像的邊界搜索
經(jīng)過邊緣檢測得到的圖像是二值圖像,用一個由0和1組成的二維矩陣表示。對于邊緣檢測后的二值圖像,要實現(xiàn)邊緣的坐標信息的提取,首先需要通過膨脹、腐蝕和細化這三種形態(tài)學處理法去除二值圖像中噪聲點、毛刺等不需要的部分,再通過邊界搜索的方法獲得圖像邊緣的坐標信息。
二值圖像的膨脹、腐蝕和細化膨脹和腐蝕是關(guān)于集合補和反轉(zhuǎn)的對偶,這兩種運算是緊密聯(lián)系在一起的,一種運算對目標的操作相當于另一種運算對圖像背景的操作。
細化處理是指在不影響紋線連通性的基礎(chǔ)上,刪除紋線的邊緣像素,直到紋線為單像素寬為止。理想細化后的紋線骨架應(yīng)該是原始紋線的中間位置,并保持紋線的連接性、拓撲結(jié)構(gòu)和細節(jié)特征。
從圖6(a)(b)可以看出二值圖像經(jīng)過圖像膨脹后邊緣擴充,然后用同一個結(jié)構(gòu)元素進行圖像腐蝕,腐蝕后的圖像邊緣比較線性,但還是存在邊緣的多像素寬,因此要采用圖像細化來處理。如圖6(c)所示,圖像細化后邊緣紋線都是單像素寬,多余的部分已被慮除。這樣的圖像就可以通過邊界搜索去尋找邊界的坐標位置。
2 二值圖像的邊界搜索
由于邊緣都是單像素寬,且圖像中不存在毛刺、孤立噪聲點,圖6(c)所示的二值圖象的邊界搜索算法很簡單:我們把一個自身為1而其上一個像素為0的像素定義為邊界點,按從上到下,從左到右的順序?qū)Χ祱D像進行掃描,發(fā)現(xiàn)這樣的像素點存儲其坐標值。按照這樣掃描方式,如果發(fā)現(xiàn)第一個從0開始變?yōu)?的像素一定是最左上角的邊界。
參考如圖7所示的邊界搜索流程圖,二值圖像邊界搜索具體步驟如下:
從二值圖像的最左邊從上到下進行掃描,如果完成一列掃描沒有發(fā)現(xiàn)邊界點則繼續(xù)搜索右邊一列。
在搜索到第一個邊界點后,繼續(xù)向下搜索,將從0開始變?yōu)? 的像素記錄下來,將搜索到的邊界點按順序存到矩陣P(K)中,K代表的是在一列中發(fā)現(xiàn)的第K個邊界點。這么做是為了將同一光條邊緣的邊界點存儲到一個矩陣中,方便后續(xù)的數(shù)據(jù)處理。
直到搜索到x=1024,y=768說明搜索已經(jīng)遍歷了整副圖像,搜索結(jié)束。
參考文獻
[1] 章毓晉. 圖象處理和分析[M]. 北京: 清華大學出版社, 1999, 179-182
[2] 孫慧, 周紅霞, 李朝暉 圖象處理中邊緣檢測技術(shù)的研究[J], 電腦開發(fā)與應(yīng)用, 2002 ,Vol.15 (10) : 7-9
[3] 李輝,蔣秀明,高殿斌等. Matlab語言在數(shù)字圖像中值濾波中的應(yīng)用研究[J]. 天津工業(yè)大學學報, 2003, 22(1):87-88
[4] 董漢莉. Marr-Hildreth算子邊緣精確定位的研究[J]. 鄭州工業(yè)大學學報, 1999 Vol.14(2):3-6.
[5] 林卉,趙長勝,舒寧.基于Canny算子的邊緣檢測及評價[J]. 黑龍江工程學院學報, 2003, Vol.17(2):3-6.
[6] 周心明, 蘭賽, 徐燕. 圖象處理中幾種邊緣檢測算法的比較[J]. 現(xiàn)代電力, 2000, Vol.17 (3):65~69.
作者簡介:夏冰冰,男, 講師 1980年2月生,碩士,2006年畢業(yè)于浙江工業(yè)大學信息與控制工程系,現(xiàn)為寧波職業(yè)技術(shù)學院海天學院教師,研究方向:模式識別及工業(yè)檢測。