【圖像檢測-邊緣檢測】基于插值法實現(xiàn)亞像素邊緣檢測含Matlab源碼
1 簡介
隨著工業(yè)技術的飛速發(fā)展,人們對產(chǎn)品質(zhì)量和精度的要求越來越高。機器視覺系統(tǒng)正廣泛應用于識別工件、校驗組件、缺陷檢測、目標識別及跟蹤等領域,因此給智能機器視覺系統(tǒng)賦予人類視覺功能是非常關鍵的。而通常情況下,智能機器視覺系統(tǒng)是通過各種測量方法對目標物體進行測量得到有效參數(shù)后,再進行下一步的高級處理。目前,最為常見的測量技術中包含圖像測量技術,它以光學為基礎,集計算機技術、激光技術、圖像處理技術、融光電子學等現(xiàn)代科學為一體,組成光、機、電綜合的測量系統(tǒng)。圖像測量可理解為對圖像中目標或區(qū)域的特征進行測量和估計。圖像測量以其非接觸、高精度、全視場的特點逐漸成為精密儀器測量領域中新的測量技術,其原理就是通過對被測物體圖像的邊緣進行有效處理而獲得圖像的幾何參數(shù)。廣義的圖像測量包括對圖像的灰度特征、紋理特征和幾何特征的量測和描述。狹義的圖像測量僅指對圖像目標幾何特征的量測,包括對目標或區(qū)域幾何尺寸的量測和幾何特征的分析。
把圖像作為檢測和傳遞信息的載體,目的是為了從圖像中獲取有用的信息,同時對被測對象進行正確的反映和處理[4]。在此過程中準確地提取出圖像的邊緣是及其重要的,因為圖像的邊緣能夠提供許多有效信息和重要參數(shù),從而得到目標的重要特征。邊緣是圖像最基本的特征,是圖像的一種緊描述,它包含了圖像中用于識別目標的有用信息。圖像的邊緣像素實質(zhì)上是圖像局部范圍內(nèi)灰度的突變點,即邊緣是圖像像素點的灰度值發(fā)生變化的地方,這些點給出了圖像輪廓的位置,為人們在描述或識別目標以及解釋圖像時,提供非常重要的特征參數(shù)。因此,邊緣檢測技術在視覺檢測系統(tǒng)中起著重要的作用,對進行下一步處理,如配件完整性、幾何尺寸的測量和表面完好性等有著極大的影響。
基于邊緣檢測的視覺系統(tǒng)因具有非接觸性、高精度、高效率、自動化等優(yōu)點而備受人們的重視。目前,國內(nèi)一些公司已經(jīng)逐步開始將機器視覺系統(tǒng)應用于工業(yè)現(xiàn)場中,還自主研發(fā)了針對專門行業(yè)的機器視覺軟件,如螺母、軸承等。這些對零件進行檢測的機器視覺系統(tǒng)都離不開圖像的邊緣檢測。隨著我國配套基礎設施的不斷完善,圖像和機器視覺技術的工業(yè)化、智能化需求飛速提高,有關圖像的邊緣檢測及其相關應用的發(fā)展空間是相當可觀的。
在視覺檢測系統(tǒng)中,系統(tǒng)的精度與邊緣檢測的精度成正比關系。而在其它條件一定的情況下,提高視覺系統(tǒng)精度的最直接方法就是提高硬件分辨率,即增加像素點陣數(shù)。但是提高硬件分辨率的成本比較高,價格相當昂貴。所以許多研究者試圖利用軟件處理的方法來解決圖像中目標高精度的問題,不僅可以提高檢測精度,而且經(jīng)濟實用[6]。傳統(tǒng)的邊緣檢測算法的精度通常為像素級,有?Roberts?算子,Sobel?算子,Prewitt?算子、Canny?算子和拉普拉斯算子等。這些算法的檢測效果并不理想,表現(xiàn)在以下?3?個方面:
(1)在處理含有噪聲的圖像時,要進行有效的邊緣檢測必須先去除圖像中的噪聲,對圖像進行平滑處理,由于噪聲和邊緣
都是高頻信息,在去除噪聲的同時容易將某些邊緣也同時去除。
(2)大多數(shù)邊緣檢測算子都是針對階躍型邊緣比較有效,但在實際中,圖像包含的邊緣不僅僅是階躍型邊緣,還包括斜坡型邊緣和屋脊型邊緣等。因此,這些傳統(tǒng)的邊緣檢測算法并不是對所有類型的邊緣都能夠進行有效的提取。
(3)圖像的邊緣不僅僅存在于單一尺度的范圍內(nèi),而是存在于不同尺度的范圍內(nèi),利用單一尺度的算子進行邊緣檢測時不能檢測出所有邊緣,需要利用多個尺度的邊緣檢測算子對圖像中不同尺度的邊緣進行有效檢測。
隨著人們對檢測精度要求的不斷提高,像素級精度已經(jīng)不能滿足實際需求,因此需要具有更高精度的邊緣檢測算法,即亞像素邊緣檢測算法。最早應用的亞像素算法是重心法,后來專家們又提出了許多不同原理的亞像素算法,包括擬合法、非線性插值法、矩方法、抖動技術和數(shù)字相關亞像素定位算法等。亞像素邊緣檢測技術的應用是實現(xiàn)高精度測量的一種重要手段。該方法簡單、有效、成本低。因此,基于亞像素的邊緣檢測技術是目前視覺檢測系統(tǒng)中的關鍵技術與研究熱點,其研究具有重要的學術意義和應用價值。
2 部分代碼
clear
clc
II=imread('1.bmp');
II=rgb2gray(II);
II=im2bw(II,0.25);
% II=medfilt2(II);
figure(1),imshow(II)
I=double(II);
[m,n]=size(I);
end
toc;
t2=clock;
etime(t2,t1);
figure(3),imshow(W)
3 仿真結果


4 參考文獻
[1]楊兵兵. 亞像素圖像邊緣檢測方法研究[D]. 大連理工大學.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡預測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡文獻,若有侵權聯(lián)系博主刪除。
