版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)字圖像分割的MATLAB仿真研究摘要圖像分割作為圖像處理中一個(gè)極為重要的步驟,它是圖像分析的基礎(chǔ),沒有一個(gè)好的圖像分割效果,其分析結(jié)果必然會(huì)有許多誤差。經(jīng)過幾代人的努力,如今已經(jīng)出現(xiàn)了許許多多的算法、方法來解決圖像分割這個(gè)問題,但是圖像分割至今仍是圖像處理學(xué)術(shù)界一個(gè)難以攻克的難題。本文就現(xiàn)今較為常用的邊緣檢測算子:Roberts算子、Sobel算子、Prewitt算子、LoG算子、Canny算子,以及閾值分割法的三種常用算法:雙峰法、大津法、迭代法進(jìn)行仿真,然后通過仿真結(jié)果比較各種算法的優(yōu)劣。關(guān)鍵詞:圖像分割,邊緣檢測,算子,閾值A(chǔ)bstractAsaveryimportantstepinimageprocessing,imagesegmentationisthebasisofimageanalysis.Withoutagreatimagesegmentationeffect,theanalysisresultswillinevitablyhavemanyerrors.Afterseveralgenerationsofefforts,therehavebeenmanyalgorithmsandmethodstosolvetheproblemofimagesegmentation,butimagesegmentationisstilladifficultproblemfortheimageprocessingacademia.Inthispaper,Robertsoperator,Sobeloperator,Prewittoperator,LoGoperator,Cannyoperatorandthreecommonalgorithmsforthresholdsegmentation,namely,bimodalmethod,OTSUmethodanditerativemethod,aresimulated,andtheadvantagesanddisadvantagesofvariousalgorithmsarecomparedthroughsimulationresults.Keywords:ImageSegmentation,EdgeDetection,Operator,Threshold目 錄1 緒論11.1 題目背景及目的11.2 數(shù)字圖像分割國內(nèi)外研究狀況21.3 文章主要內(nèi)容及結(jié)構(gòu)安排32 基于MATLAB在圖像處理的應(yīng)用介紹42.1 MATLAB簡介42.2 MATLAB圖像處理工具箱42.3 MATLAB對圖像處理的支持53 圖像分割基礎(chǔ)63.1圖像分割的概念63.2圖像分割的基本方法63.3圖像分割精度評判標(biāo)準(zhǔn)74 邊緣檢測方法84.1 edge函數(shù)84.2 梯度算子84.2.1Roberts算子94.2.2Sobel算子124.2.3Prewitt算子154.3 LoG算子204.4 Canny算子264.5常用算子的邊緣檢測比較分析及總結(jié)345閾值分割方法355.1 雙峰法355.2 最大類間方差法395.3 迭代法426總結(jié)與展望456.1 總結(jié)456.2 展望45參考文獻(xiàn)46致謝49數(shù)字圖像分割的M數(shù)字圖像分割的MATLAB仿真研究唐家彬自動(dòng)化學(xué)院 緒論題目背景及目的隨著現(xiàn)代信息處理技術(shù)的不斷進(jìn)步,越來越多的信息通過計(jì)算機(jī)來處理,圖像就是其中最為重要的組成部分之一,因?yàn)槿祟悅鬟f信息的方式之一便是通過圖像信息,而圖像信息的處理之中的關(guān)鍵步驟就是圖像分割。圖像處理在如今的應(yīng)用領(lǐng)域十分廣泛:領(lǐng)域應(yīng)用內(nèi)容物理、化學(xué)譜分析、結(jié)晶分析法律、公安指紋識(shí)別、人臉識(shí)別宇航衛(wèi)星定位、星際照片處理生物細(xì)胞分析、染色體分析、血球分析農(nóng)林植被分布勘測、農(nóng)作物產(chǎn)量估計(jì)海洋海洋污染勘測、魚群探查軍事偵查,圖像制導(dǎo)、圖像融合通訊傳真、電視、可視電話、圖像通信水利河流分布、水利水害勘測工業(yè)計(jì)算機(jī)視覺、機(jī)器人、自動(dòng)控制地質(zhì)資源勘測、地圖繪制、GIS交通汽車識(shí)別、交通指揮等環(huán)境水質(zhì)及大氣污染調(diào)查文化多媒體、動(dòng)畫氣象云圖分析醫(yī)學(xué)醫(yī)學(xué)影像(腫瘤及其他病理定位、解剖學(xué)結(jié)構(gòu)的研究等)表1.1圖像處理應(yīng)用領(lǐng)域圖像分割是圖像分析之前,圖像處理之中必不可少的部分,圖像分割是把一個(gè)圖像按照人們所希望的目標(biāo),分成數(shù)個(gè)具有各自特征的部分,這才使得下一步圖像分析能進(jìn)行下去。倘若圖像分割的結(jié)果其效果不理想,不能達(dá)到預(yù)期目標(biāo),就會(huì)導(dǎo)致圖像分析出現(xiàn)偏差,有效且合理的圖像分割能夠?yàn)榻酉聛淼膱D像處理的步驟提供很大的便利,因此圖像分割技術(shù)在圖像處理中的地位是十分重要的。1.2數(shù)字圖像分割國內(nèi)外研究狀況 圖像分割技術(shù)從1970年代開始就一直廣受關(guān)注,雖然研究者對此進(jìn)行了各方面的研究,但是至今仍舊無法選擇出一個(gè)最好的、能夠普遍使用的方法。目前來說,圖像分割已經(jīng)有了幾千種算法,但是無非都是基于圖像像素的一些特性來分割:相似性、不連續(xù)性等,因此圖像分割可分為區(qū)域分割、邊緣分割以及區(qū)域和邊緣相結(jié)合的算法。現(xiàn)實(shí)中有著光與噪聲的干擾,這就使得邊緣分割方法難以實(shí)現(xiàn),因此出現(xiàn)了許多不同算子來實(shí)現(xiàn)邊緣分割,這些不同的算子各有其特點(diǎn)及應(yīng)用場景,有如下特點(diǎn):1、Roberts算子對圖像的邊緣定位準(zhǔn)確,但對噪聲敏感,因此大多使用在邊緣明顯且噪聲較小的情況;2、Sobel算子相比于其他算子對噪聲的敏感度較低,它不僅可以獲得很好的邊緣分割效果,還可以獲得較好的噪聲平滑作用,但是也使得邊緣分割的精度降低了,這是由于它在平滑噪聲的過程中增加了一些偽邊緣。3、Prewitt算子對噪聲有抑制作用,但是由于其對噪聲的抑制是通過像素平均的原因,導(dǎo)致對邊緣的定位不如Roberts算子。4、Laplacian(拉普拉斯)算子一般不在有噪聲的情況下單獨(dú)使用,因?yàn)樗鼘υ肼曈屑訌?qiáng)作用,若需要在有噪聲情況下使用,則一般是與能夠平滑噪聲的算子結(jié)合使用。Laplacian利用零交叉性質(zhì)進(jìn)行邊緣定位,判斷像素是在邊緣的亮側(cè)還是暗側(cè)。5、Canny算子具有大部分算子的優(yōu)點(diǎn):高精度的邊緣定位、能有效抑制噪聲、低誤判率等,但是其實(shí)現(xiàn)步驟較為復(fù)雜。閾值分割相對應(yīng)的方法:全局閾值分割、迭代法、最大類間方差法,將在下文介紹。圖像分割是圖像分析的基礎(chǔ),深入研究算法,改進(jìn)原有算法,甚至提出新的算法都是為了一個(gè)目標(biāo)前進(jìn),那就是能夠獲得更好的圖像分割結(jié)果,這是現(xiàn)今的圖像分割技術(shù)的一個(gè)發(fā)展趨勢。1.3文章主要內(nèi)容及結(jié)構(gòu)安排 本文就圖像分割的兩種常用方法——邊緣檢測法和閾值分割法進(jìn)行了MATLAB仿真,并且就各個(gè)算法的仿真結(jié)果進(jìn)行比較分析。 本文第一章主要介紹圖像分割的研究意義以及背景;第二章針對MATLAB軟件進(jìn)行介紹;第三章介紹了圖像分割的基礎(chǔ)內(nèi)容——概念、基本方法、評估標(biāo)準(zhǔn);第四章主要對邊緣檢測法中各個(gè)算子進(jìn)行MATLAB仿真比較;第五章對閾值分割法中的三個(gè)閾值選取算法進(jìn)行仿真與分割效果比較;第六章是圖像分割的總結(jié)與未來展望;第七章為本文參考文獻(xiàn);第八章是致謝所有本文有幫助的人。2 基于MATLAB在圖像處理的應(yīng)用介紹2.1MATLAB簡介MATLAB是Matrix(矩陣)和Laboratory(實(shí)驗(yàn)室)兩個(gè)詞結(jié)合而生的,它是由美國的CleverMoler博士在1980年開發(fā)的,其開發(fā)的最初目的是為解決線性代數(shù)課程的矩陣運(yùn)算問題,而在之后的幾十年里,Matlab逐漸成為世界最強(qiáng)大的數(shù)學(xué)軟件之一,它衍生出了許多的應(yīng)用領(lǐng)域,如:信號(hào)檢測、圖像處理、工程計(jì)算等領(lǐng)域。2.2MATLAB圖像處理工具箱 MATLAB提供了多種不同功能的圖像處理工具箱:1、繪圖工具箱:plot(基本繪圖函數(shù))、title(標(biāo)題)、xlabel(X軸標(biāo)記)、grid(網(wǎng)格線)等多種繪圖函數(shù)。2、圖像顯示工具箱:imshow(以處理圖像的方式顯示圖像)、subimage(以單幅圖像的形式顯示排列好的多幅圖像)等。3、像素值和統(tǒng)計(jì)工具箱:std2(矩陣元素的標(biāo)準(zhǔn)差)、regionprops(度量圖像區(qū)域的特性)等。4、圖像變換工具箱:fabeam(扇形射束變換)、phantom(創(chuàng)建頭部幻影圖像)等。5、圖像分析工具箱:edge(尋找灰度圖像的邊緣)、houghlines(基于霍夫變換的線段提取)等。6、圖像去模糊工具箱:deconvblind(盲去卷積法)、deconvreg(規(guī)則濾波法)等。7、圖像配準(zhǔn)工具箱:cpselect(控制點(diǎn)選擇工具)、normxcorr2(歸一化的二維互相關(guān))等。8、形態(tài)學(xué)操作工具箱:bwperim(尋找目標(biāo)的周長)、imdilate(膨脹圖像)等。9、彩色空間工具箱:cmunique(去除索引圖像的彩色圖中不需要的顏色)、rgb2ntsc(RGB轉(zhuǎn)變?yōu)镹TSC)等。2.3MATLAB對圖像處理的支持 1、圖像的支持MATLAB支持以下幾種圖像文件的格式:JPEG、BMP、PCX、TIFF、PNG、GIF、HDF、ICO、CUR、XWD、RAS、PBM、PGM、PPM、TGA。但是MATLAB的圖像處理功能中可處理的格式只有以下七種:JPEG、BMP、PCX、HDF、TIFF、XWD、TGA。2、圖像操作的支持MATLAB提供了一系列指令來讓使用者判斷圖像文件的類型,如:isbw(返回真則為二值圖像)、isgray(返回真則為灰度圖像)、isind(返回真則為索引圖像)、isrgb(返回真則為RGB圖像)。除此之外,MATLAB能通過imread和imwirte操作轉(zhuǎn)換圖像文件格式,不僅如此還提供了很多函數(shù)來轉(zhuǎn)換圖像類型。3、圖像運(yùn)算的支持 MATLAB支持圖像點(diǎn)運(yùn)算,即將輸入圖像映射為輸出圖像,普遍用于改變圖像的灰度范圍和分布。 MATLAB支持圖像線性點(diǎn)運(yùn)算,即點(diǎn)運(yùn)算函數(shù)f是線性函數(shù)時(shí)的運(yùn)算,其線性系數(shù)a大于1時(shí)可增大輸出圖像的對比度,a小于1時(shí)則減小對比度;若a=1且b=0,則輸出圖像和輸入圖像相同;若a=1且b≠0,則輸出圖像相較于輸入圖像僅導(dǎo)致灰度值上移或者下移。 MATLAB也同樣支持圖像非線性點(diǎn)運(yùn)算,它對應(yīng)著非線性映射函數(shù)。4、MATLAB對圖像的存儲(chǔ)運(yùn)算和顯示方式 在MATLAB中,其提供了uint8(8位無符號(hào)正整數(shù))這個(gè)特殊數(shù)據(jù)類型來存儲(chǔ)圖像。但是在編程時(shí),在進(jìn)行中間運(yùn)算的圖像處理過程仍然需要用double(64位雙精度浮點(diǎn))類型,因?yàn)镸ATLAB默認(rèn)采用的數(shù)值類型就是double類型。要進(jìn)行uint8與double類型轉(zhuǎn)換可通過以下操作:imu8=uint8(round(imdoub*255));imdoub=double(imu8)/255;3 圖像分割基礎(chǔ)3.1圖像分割的概念為了將圖像的表現(xiàn)形式變得更加簡單且更容易理解分析,圖像分割這一理念便出現(xiàn)了。在計(jì)算機(jī)視覺領(lǐng)域,圖像分割指的是將數(shù)字圖像細(xì)分為多個(gè)圖像子區(qū)域的過程。通俗來說,圖像分割就是將一個(gè)圖像中具有不同種視覺共性的部分分開。3.2圖像分割的基本方法 如今已有許多較為成熟的分割方法:聚類法:這種方法較為少用,它能保證結(jié)果是收斂的,但是無法保證分割結(jié)果是最好的,因?yàn)榉指畹男Ч请S著最初選擇的聚類變化而變化的。直方圖法:圖像直方圖有多種如灰度直方圖、顏色直方圖、視覺直方圖,應(yīng)用于圖像分割的便是灰度直方圖?;诨叶戎狈綀D的分割方法十分有效,但是其受噪聲干擾嚴(yán)重。邊緣檢測法:對于一個(gè)圖像來說,其基本單位就是像素點(diǎn),而像素點(diǎn)對應(yīng)的幅值是灰度值,當(dāng)一片區(qū)域的灰度值到了某個(gè)地方不連續(xù)了,就表示這個(gè)區(qū)域結(jié)束了,即將進(jìn)入下一個(gè)區(qū)域,而這個(gè)不連續(xù)的地方就是區(qū)域與區(qū)域之間的邊緣。邊緣檢測法就是通過找到這個(gè)邊緣來分割圖像。區(qū)域分割法:區(qū)域分割法在不同的領(lǐng)域有不同的分割方法,可分為串行區(qū)域和并行區(qū)域兩個(gè)技術(shù)領(lǐng)域。(1)對于串行區(qū)域技術(shù):它有兩種方法,第一種是區(qū)域生長法,第二種是區(qū)域分裂合并法,它是區(qū)域生長法的逆向過程。(2)對于并行區(qū)域技術(shù),有閾值分割法:閾值分割法是將輸入圖像G通過以下公式轉(zhuǎn)化輸出圖像I:I(x,y)={10fx,y≥Sf(x,y)<S 其中S是閾值,公式可以看出確定一個(gè)合適的閾值S是閾值分割法的關(guān)鍵,閾值確定的方法有很多種。閾值分割法應(yīng)用范圍十分廣泛,這也是因其算法簡單、效率高導(dǎo)致的。水平集方法:最初由Osher和Sethian提出,在圖像分割中被應(yīng)用于確定圖像的輪廓,缺點(diǎn)是計(jì)算量太大,優(yōu)點(diǎn)是能夠獲得十分清晰明顯的邊緣。3.3圖像分割精度評判標(biāo)準(zhǔn)隨著圖像分割技術(shù)的日漸完善,也同時(shí)導(dǎo)致對分割精度的需求越來越高。由于分割算法不可避免的會(huì)導(dǎo)致誤判,從而把不屬于該類的像素點(diǎn)分配到該類,因此出現(xiàn)了許多評估分割精度的標(biāo)準(zhǔn),假設(shè)圖像中有n+1個(gè)類,Pij表示屬于類i但被誤判為類j的像素點(diǎn)個(gè)數(shù),Pii表示正確分類的像素個(gè)數(shù)。以上是評判標(biāo)準(zhǔn)的前提。 1、PA(PixelAccuracy):像素精度,分割后的圖像中,分割正確的像素占預(yù)測分割圖像總像素的比例,這是最簡單的精度標(biāo)準(zhǔn)。PA=i=0nPiii=0nj=0nPij 2、MPA(MeanPixelAccuracy):均像素精度,計(jì)算每個(gè)類內(nèi)被分類正確的像素比例后求所有類的像素比例平均值,比PA稍微精確一點(diǎn)。MPA=1n+1i=0nPiij=0nPij 3、MIoU(MeanIntersectionoverUnion):均交并比,把完美分割的結(jié)果圖像中的像素點(diǎn)的集合稱為預(yù)測集合,把實(shí)際分割結(jié)果圖像的像素點(diǎn)的集合成為真實(shí)集合,而MIoU就是計(jì)算預(yù)測集合A與真實(shí)集合B的交集和并集之比。MIoU=1n+1i=0nPiij=0nPij+4、FWIoU(FrequencyWeightedIntersectionoverUnion):頻權(quán)交并比,類似加權(quán)平均數(shù)的做法,根據(jù)每個(gè)類出現(xiàn)的頻率為每個(gè)類添加權(quán)。FMIoU=1i=0nj=0nPiji=0 在這么多種分割精度評判標(biāo)準(zhǔn)中,MIoU成為獨(dú)一的香餑餑,眾多研究者都喜歡用它來作為評判標(biāo)準(zhǔn),這也是因其簡潔、代表性強(qiáng)。4 邊緣檢測方法 圖像分割最為常用的方法之一便是邊緣檢測方法,邊緣檢測法是通過檢測圖像的邊緣來進(jìn)行分割,而邊緣即是圖像的像素點(diǎn)的幅值發(fā)生突變的地方,邊緣檢測的目的便是找到這個(gè)地方。邊緣檢測法中有許多邊緣檢測算子,在不同應(yīng)用場景使用不同的算子能夠有不同的效果,邊緣檢測算子檢查每個(gè)像素的鄰域并且對灰度變化率進(jìn)行量化,同時(shí)也包含方向的確定。4.1edge函數(shù) MATLAB中已經(jīng)集成了大部分常用邊緣檢測的算子,并且提供了edge函數(shù)來調(diào)用算子,可以通過edge函數(shù)指定不同的算子來對輸入圖像進(jìn)行邊緣檢測。以下是部分edge函數(shù)的使用方法: BW=edge(I):返回一個(gè)二值化圖像BW,其中I表示一個(gè)灰度圖像或二值化圖像,在edge函數(shù)檢測到邊緣的地方為1,其他地方為0,edge函數(shù)默認(rèn)使用Sobel算子。 BW=edge(I,method):使用指定算子檢測圖像邊緣。 BW=edge(I,method,threshold):返回所有大于指定閾值的邊緣。 BW=edge(I,method,threshold,direction):指定要檢測的邊緣的方向,Sobel和Prewitt算子可以檢測水平方向、垂直方向或者二者同時(shí)存在的邊緣。Roberts算子可以檢測水平45°、水平135°或者兩個(gè)角度都存在的邊緣。這個(gè)語法只在Sobel算子、Prewitt算子和Roberts算子上有效。 BW=edge(___,'nothinning'):這條指令能夠跳過邊緣細(xì)化階段,能夠加快分割效率。這種語法也是只有在Sobel算子、Prewitt算子和Roberts算子上才有效。 BW=edge(I,method,threshold,sigma):指定sigma,即標(biāo)準(zhǔn)差。這種語法只有在LoG算子、Canny算子時(shí)才有效。4.2梯度算子 梯度算子也稱Hamilton算子,它是任意n維標(biāo)量函數(shù)f(x1,···,xn)=f(x)的向量算子,在圖像分割中也稱作一階算子。梯度算子已經(jīng)是較為早期出現(xiàn)的算子,如今的算子都是基于梯度算子進(jìn)行改進(jìn)的。4.2.1Roberts算子 Roberts算子是最簡單的算子。它尋找邊緣的原理是利用局部差分算子,即采用對角線方向相鄰的兩個(gè)像素之差近似梯度幅值來檢測邊緣。Roberts算子的定位精度高,但是對噪聲十分敏感,適用于小噪聲的邊緣檢測。 Roberts算子對原始圖像F(x,y)進(jìn)行運(yùn)算得到輸出圖像G(x,y),輸出圖像即為Roberts算子檢測出邊緣的圖像。Roberts算子公式為:G(x,y)={[F(x,y)–F(x+1,y+1)]2+[F(x+1,y)-F(x,y+1)]2}1/2 (4.1)由于公式(4.1)計(jì)算量較大,研究者在實(shí)際應(yīng)用中通常使用絕對差來近似代替上條公式:G(x,y)≈|F(x,y)-F(x+1,y+1)|+|F(x+1,y)-F(x,y+1)| (4.2)通過公式(4.2),可以得到Roberts算子的卷積因子,即Roberts算子模板:G1 G2100-101-10MATLAB對圖像處理提供了很大的支持,下面是用MATLAB對Roberts算子進(jìn)行圖像邊緣檢測的仿真。 由于原始圖是600*800的大小,因此將原始圖通過rgb2gray(I),使其變換為灰度圖,再將大小縮小到原來的0.6倍(imresize(I,0.6)),得到下圖。圖4.1轉(zhuǎn)換后的灰度圖使用edge函數(shù)調(diào)用Roberts算子,在MATLAB中的代碼如下圖:圖4.2MATLABRoberts算子代碼實(shí)現(xiàn)代碼第一行是讀取gdut.jpg灰度圖像;第二行調(diào)用edge函數(shù)的Roberts算子,設(shè)置Threshold(靈敏度閾值)為0.05,第三行是顯示提取邊緣后的圖片,第四行為圖片設(shè)置標(biāo)題。在不同的靈敏度閾值的情況下,運(yùn)行結(jié)果如下圖所示:圖4.3不同Threshold值Roberts算子仿真結(jié)果圖可以看到當(dāng)Threshold=0.01的時(shí)候,由于Roberts算子太過敏感,導(dǎo)致對圖像噪聲過于敏感,使得邊緣提取后打印的圖片中,出現(xiàn)了很多不屬于真實(shí)邊緣的白點(diǎn),這些白點(diǎn)都是閾值過小而產(chǎn)生的偽邊緣,可見在這樣Threshold值下的邊緣提取精度是非常粗糙的。 當(dāng)Threshold=0.05的時(shí)候,仿真結(jié)果圖中幾乎將原圖的所有物體的邊緣都提取出來了,甚至于石頭上的字體都能提取的十分精準(zhǔn)。但仍然有些地方,如刻著“廣東工業(yè)大學(xué)”字樣的石頭的邊緣有些不連續(xù),石頭的左下角、右下角和草地重合之處的邊緣幾乎無法提取出來。對于此時(shí)的噪聲敏感度適中,僅有些許白色小點(diǎn)。 當(dāng)Threshold=0.1的時(shí)候,石頭的邊緣幾乎不可見,石頭上的“廣東工業(yè)大學(xué)”字樣變成了一些白點(diǎn),提取出的大部分邊緣都是柱子與橫桿,但可以看到也是有大部分邊沿線條不連續(xù)。此時(shí)的噪聲基本不影響圖像。 綜合以上分析可以得到一個(gè)結(jié)論,對于Roberts算子來說,靈敏閾值并不是越低越好,應(yīng)該根據(jù)不同的噪聲影響以及圖像的復(fù)雜程度,適當(dāng)選取它的值,這樣才能得到結(jié)果較為準(zhǔn)確的邊緣提取圖像,在本例中選用Threshold=0.05最為合適。 下面來討論Roberts算子對噪聲的影響。通過NI=imnoise(I,'…')函數(shù)給圖像添加高斯噪聲(gaussian)以及椒鹽噪聲(salt&pepper),而后對其進(jìn)行Roberts邊緣提取。在不同噪聲的影響下,邊緣提取仿真結(jié)果如下圖:圖4.4不同噪聲影響下的Roberts算子仿真結(jié)果圖 可以看到原圖對應(yīng)的Roberts算子運(yùn)算結(jié)果是十分理想的,但是在邊緣不明顯的地方,如有陰影的、柱子橫桿密集的等地方,邊緣不連續(xù)。當(dāng)添加了高斯噪聲之后,Roberts運(yùn)算就出現(xiàn)了滿屏雪花的情況,雖然能夠大致看出物體的輪廓,但是在輪廓之內(nèi)基本都是噪聲作為填充,結(jié)果十分不理想。當(dāng)添加了椒鹽噪聲之后,Roberts算子的運(yùn)算結(jié)果仍舊十分不理想,這也是Roberts算子對噪聲比較敏感的原因。雖說也能看清柱子以及石頭等輪廓,但椒鹽噪聲的白點(diǎn)也存在于邊緣提取圖中的每一個(gè)角落,這會(huì)直接影響到之后的圖像分析步驟的結(jié)果。椒鹽噪聲相對于高斯噪聲,影響沒有高斯噪聲那么夸張,這是由于椒鹽噪聲的噪聲比高斯噪聲小。經(jīng)過上述的分析比較,可以證實(shí)一個(gè)結(jié)論:Roberts算子的邊緣定位精準(zhǔn),但僅適用于小噪聲甚至于無噪聲圖像。而且對于圖像中邊緣不明顯的地方,它的效果也不是很理想。4.2.2Sobel算子 Sobel算子,也稱作索貝爾-費(fèi)德曼算子或索貝爾濾波器。Sobel算子是1968年時(shí)由美國計(jì)算機(jī)科學(xué)家IrwinSobel和GaryFeldman在史丹佛大學(xué)的SAIL(人工智能實(shí)驗(yàn)室)提出的。因此以他們的名字來命名它。 Sobel是一種離散型差分近似運(yùn)算圖像亮度函數(shù)的梯度值的算子。在圖像的任何一點(diǎn)使用它,其運(yùn)算將會(huì)產(chǎn)生對應(yīng)的梯度向量或是其范數(shù)。 理論上來說,Sobel算子是一個(gè)整數(shù)的小型濾波器,對圖像在水平和垂直方向上做卷積。因此它需要的運(yùn)算資源較少。但是在圖像的頻率變化快的地方,Sobel算子得到的梯度的近似值也較為粗糙。 Sobel算子的模板如下:GxGy121000-1-2-1-101-202-101將算子模板與圖像卷積得到Sobel算子公式:Gx=[F(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[F(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)] (4.3)Gy=[F(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]-[F(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)] (4.4)結(jié)合公式(4.3)和(4.4),可以得到(x,y)像素點(diǎn)的梯度值,即為灰度值:G=[(Gx)2+(Gy)2]1/2 (4.5)在實(shí)際應(yīng)用之中,通常使用這個(gè)公式的絕對近似值,因此公式(4.5)變換為:|G|=|Gx|+|Gy| (4.6)如果梯度大于某一閾值,則可認(rèn)為該(x,y)點(diǎn)為邊緣點(diǎn)。下面是基于Sobel算子的MATLAB邊緣檢測的仿真。代碼如下:圖4.5MATLABSobel算子代碼實(shí)現(xiàn)在不同的靈敏度閾值的情況下,運(yùn)行結(jié)果如下圖所示:圖4.6不同Threshold值Sobel算子仿真結(jié)果圖可以看到當(dāng)Threshold=0.01的時(shí)候,由于Sobel算子的閾值太小,導(dǎo)致對圖像噪聲過于敏感,使得邊緣提取后打印的圖片中,出現(xiàn)了很多不屬于真實(shí)邊緣的白點(diǎn),這些白點(diǎn)都是偽邊緣,是閾值過小造成的影響,可見在這樣Threshold值下的邊緣提取精度是非常粗糙的。 當(dāng)Threshold=0.05的時(shí)候,仿真結(jié)果圖中幾乎將原圖的所有物體的邊緣都提取出來了,甚至于石頭上的字體都能提取的十分清晰。 當(dāng)Threshold=0.1的時(shí)候,石頭的邊緣幾乎不可見,石頭上的“廣東工業(yè)大學(xué)”字樣變成了一些白點(diǎn),提取出的大部分邊緣都是柱子與橫桿,但可以看到也是有大部分柱子邊沿線條不連續(xù)。 綜合以上分析,對于Sobel算子來說,靈敏閾值也并不是越低越好,應(yīng)該根據(jù)不同的噪聲影響以及圖像的復(fù)雜程度,適當(dāng)選取它的值,這樣才能得到結(jié)果較為準(zhǔn)確的邊緣提取圖像,所以在Sobel算子中也選用0.05的Threshold值. 下面來討論Sobel算子對噪聲的影響。和Roberts算子的操作同樣的,給Sobel算子添加高斯噪聲和椒鹽噪聲,并對其圖像進(jìn)行Sobel運(yùn)算。圖4.7不同噪聲影響下的Sobel算子仿真結(jié)果圖可以看到原圖對應(yīng)的Sobel算子運(yùn)算結(jié)果是十分理想的,石頭上的坑洼都能夠檢測出來,柱子上的橫紋也能夠提取出來。當(dāng)添加了高斯噪聲之后,Sobel算子和Roberts算子的提取結(jié)果差不多,都是出現(xiàn)了輪廓內(nèi)由噪聲白點(diǎn)填充滿了的情況,對于光亮的地方高斯噪聲白點(diǎn)較為稀少,光暗的地方白點(diǎn)更多。當(dāng)添加了椒鹽噪聲之后,Sobel算子的運(yùn)算結(jié)果仍舊不太不理想,除了圖像本身存在的石頭、柱子橫梁、草地等物體的輪廓,還多出了大部分椒鹽噪聲的白點(diǎn)。由于高斯噪聲對圖像邊緣檢測的影響比較具有代表性,因此Sobel算子與Roberts算子的比較的仿真結(jié)果便是建立在高斯噪聲的影響之上,并且Threshold值都為0.05。對比仿真結(jié)果圖如下:圖4.8Roberts算子與Sobel算子在高斯噪聲影響下的仿真圖通過對比兩張圖發(fā)現(xiàn),Sobel算子運(yùn)算的圖像上半張圖中的橫梁以及柱子的邊緣相較于Roberts算子運(yùn)算的圖像更加清晰,而且在Sobel算子的邊緣檢測圖像中,石頭內(nèi)部的噪聲白點(diǎn)比Roberts算子的邊緣檢測圖像更稀疏,這說明Sobel算子具有一定的噪聲平滑作用,這也是Roberts算子不如它的地方。比較二者的卷積因子,可以發(fā)現(xiàn)Sobel算子檢測水平及垂直方向的邊緣比Roberts強(qiáng),而斜向邊緣的Sobel便不如Roberts算子了。若是仔細(xì)對比無噪聲影響的Roberts算子和Sobel算子的仿真圖,不難發(fā)現(xiàn)Sobel算子造成的邊緣不連續(xù)之處少于Roberts算子造成的邊緣不連續(xù),這是因?yàn)镾obel算子運(yùn)算的方向比Roberts算子多。綜上分析可以得知Sobel算子具有運(yùn)算簡單、效率快的優(yōu)點(diǎn),它在檢測垂直和水平方向上具有一定優(yōu)勢,且能夠抑制少量噪聲。4.2.3Prewitt算子 Prewitt算子最早在1970年由J.M.S.Prewitt提出,它的原理和Sobel算子相似,都是利用在水平和垂直方向的兩個(gè)模板和圖像進(jìn)行卷積運(yùn)算完成檢測的。 Prewitt算子的模板如下:Gx Gy111000-1-1-1-101-101-101將算子模板與圖像卷積得到Sobel算子公式:Gx=[F(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[F(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)] (4.7)Gy=[F(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]-[F(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)] (4.8)結(jié)合(4.7)和(4.8)式子,可以得到Prewitt(x,y)像素點(diǎn)的梯度值,即為灰度值:G=[(Gx)2+(Gy)2]1/2 (4.9)和Sobel算子一樣,公式(4.9)也可以變換為:|G|=|Gx|+|Gy| (4.10)如果求得的梯度大于某一閾值,則可認(rèn)為該(x,y)點(diǎn)為邊緣點(diǎn)。下面是用MATLAB對Prewitt算子進(jìn)行圖像邊緣檢測的仿真。使用edge函數(shù)調(diào)用Prewitt算子對圖像進(jìn)行邊緣檢測。代碼如下: 圖4.9MATLABPrewitt算子代碼實(shí)現(xiàn)在不同的靈敏度閾值的情況下,運(yùn)行結(jié)果如下圖所示:圖4.10不同Threshold值Prewitt算子仿真結(jié)果圖 對比圖4.10的仿真結(jié)果可發(fā)現(xiàn),對于Prewitt算子,也和上面兩個(gè)算子有著同樣的規(guī)律,Threshold值取0.05是較為合適的。因此采用0.05的靈敏閾值來進(jìn)行接下來的仿真。討論P(yáng)rewitt算子對噪聲的影響也和上述兩種算子一樣,利用噪聲污染函數(shù),給圖像添加方差為0.5的高斯噪聲、均值為0.01的椒鹽噪聲。不同噪聲影響的對比仿真圖如下:圖4.11不同噪聲影響下的Prewitt算子仿真結(jié)果圖不難看出,原圖對應(yīng)的Prewitt算子運(yùn)算結(jié)果也是十分理想的,甚至石頭上的坑洼都能夠檢測出來,柱子上的橫紋也能夠提取出來。當(dāng)添加了高斯噪聲之后,Prewitt算子和上述兩個(gè)算子的提取結(jié)果差不多,都是出現(xiàn)了輪廓內(nèi)由噪聲白點(diǎn)填充滿了的情況,結(jié)果依舊不太理想。當(dāng)添加了椒鹽噪聲之后,Prewitt算子運(yùn)算得到的結(jié)果也和前兩個(gè)算子相似,除了圖像本身存在的石頭、柱子橫梁、草地等物體的輪廓,還多出了大部分椒鹽噪聲的白點(diǎn)。通過對比三個(gè)一階算子的仿真圖,發(fā)現(xiàn)Prewitt算子對于高斯噪聲的影響和Sobel算子幾乎相同,二者均比Roberts算子更能平滑高斯噪聲。但是三個(gè)算子對椒鹽噪聲的響應(yīng)都不太一樣。圖4.12椒鹽噪聲影響下的Roberts算子仿真圖4.13椒鹽噪聲影響下的Sobel算子仿真圖4.14椒鹽噪聲影響下的Prewitt算子仿真 仔細(xì)觀察各個(gè)算子的椒鹽噪聲顆粒的形狀。Roberts算子的椒鹽噪聲顆粒大部分呈現(xiàn)橫或者豎的“一”字形;Sobel算子的椒鹽噪聲顆粒大部分呈現(xiàn)的是缺了四個(gè)角的正方形或者“+”形態(tài),而Prewitt算子則是大多呈現(xiàn)出正方形的白色顆粒。 會(huì)有如此奇特的現(xiàn)象出現(xiàn)的原因是三個(gè)算子的模板不同,對圖像的像素點(diǎn)計(jì)算的方向和大小也有著細(xì)微的差別。Roberts算子由于是二階矩陣作為卷積因子,所以計(jì)算出的邊緣是比較粗糙的,因此將噪聲誤判為邊緣從而展現(xiàn)出來的噪聲白點(diǎn)便會(huì)只有橫或豎的“一”字形。Sobel算子和Prewitt算子都是三階矩陣作為卷基因子,但二者也有細(xì)微的不同,差別就是矩陣元素,這就導(dǎo)致Sobel算子產(chǎn)生的噪點(diǎn)本應(yīng)該是正方形的白點(diǎn),但卻因?yàn)榫仃囋丶由系臋?quán)重“2”,致使中間部分太過突出,從而呈現(xiàn)出缺了四個(gè)角、不完整的正方形。 綜上所述,Prewitt算子具有和Sobel算子相近的特點(diǎn),但是與Sobel算子有所不同的是,Prewitt算子認(rèn)為鄰域像素對當(dāng)前像素產(chǎn)生的影響是等價(jià)的,所以Prewitt的加權(quán)平均的權(quán)值是均等的。Prewitt算子和Sobel算子相較于Roberts算子好在能夠有一定的噪聲抑制作用,但是不如Roberts算子的地方就在于對邊緣的定位。4.3LoG算子 以上介紹的都是一階微分算子,它們都是基于圖像灰度變化曲線求導(dǎo)的思想,能夠較為突出圖像的邊緣。而對于二階微分算子來說,它們基于的思想是對圖像變化曲線導(dǎo)數(shù)的曲線求導(dǎo),相當(dāng)于對圖像變化函數(shù)二次求導(dǎo),然后其二階微分函數(shù)曲線會(huì)形成一個(gè)過零點(diǎn),這個(gè)過零點(diǎn)兩邊會(huì)產(chǎn)生一個(gè)波峰、一個(gè)波谷,通過設(shè)定閾值對過零點(diǎn)進(jìn)行檢測。確定了過零點(diǎn),便相當(dāng)于確定了一個(gè)邊緣點(diǎn)。這樣帶來的好處就是對邊緣的定位能力提升了。 二階微分算子有很多,而其中最具有代表性的就是拉普拉斯算子。 拉普拉斯算子的常用模板有多種,根據(jù)不同鄰域系統(tǒng)選擇不同的模板:0101-410101414-2041411111-81111選擇第一個(gè)模板則有以下公式:G=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)拉普拉斯算子具有旋轉(zhuǎn)不變性,即梯度與坐標(biāo)軸方向無關(guān)。同時(shí)它也有個(gè)致命缺點(diǎn),就是增強(qiáng)了噪聲的影響。所以在使用拉普拉斯算子時(shí)通常都要先對圖像進(jìn)行噪聲平滑處理,這樣才不會(huì)使噪聲的影響過大。由于拉普拉斯算子有著這種放大噪聲影響的缺陷,所以在1980年,Marr和Hildreth提出將Laplace算子與高斯低通濾波相結(jié)合,形成了LoG算子。這種算子不僅具有拉普拉斯算子的優(yōu)點(diǎn),還將其缺點(diǎn)彌補(bǔ)了。LoG算子首先對圖像F(x,y)進(jìn)行尺度為σ的高斯平滑:Gσ(x,y)=12πσ2e?x2+y 再對其使用拉普拉斯算子檢測邊緣:G=?2Gσ(x,y)?x2+?2G下面是用MATLAB對LoG算子進(jìn)行圖像邊緣檢測的仿真。使用edge函數(shù)調(diào)用Prewitt算子對圖像進(jìn)行邊緣檢測。代碼如下:圖4.15LoG算子邊緣檢測MATLAB代碼實(shí)現(xiàn)由于LoG算子是二階微分算子,二階算子運(yùn)算得到的梯度比一階算子小,若是用一階算子適用的Threshold值來比較,則會(huì)將所有梯度值舍棄,從而找不到邊緣。因此設(shè)定的Threshold閾值需要比一階算子小。所以下面MATLAB仿真的Threshold值設(shè)定為0.01、0.004、0.001。在不同的閾值的情況下,運(yùn)行結(jié)果如下圖所示:圖4.16Threshold=0.001的LoG算子仿真結(jié)果圖 當(dāng)Threshold=0.01的時(shí)候,LoG算子運(yùn)算后的輸出圖像中不僅包含了真正的邊緣,還包含了大量誤判的邊緣,這就是閾值選取太小的原因。因此Threshold值需要選擇大一點(diǎn)。圖4.17Threshold=0.01的LoG算子仿真結(jié)果圖 當(dāng)閾值Threshold=0.01的時(shí)候,LoG算子的輸出圖像忽略了許多不太明顯的邊緣線條,并且有部分檢測出來的線條斷斷續(xù)續(xù)的;石頭的邊緣線條和石頭上的字樣都被忽略了??梢姶藭r(shí)的Threshold值過大了。圖4.18Threshold=0.004的LoG算子仿真結(jié)果圖 當(dāng)Threshold=0.004的時(shí)候,此時(shí)LoG算子提取出的邊緣已經(jīng)十分完整,不僅如此,其邊緣線條不連續(xù)之處很少。雖說有還些部分的輪廓缺失,但這也是原圖不夠清晰的原因,就像“廣東工業(yè)大學(xué)”字樣的“廣”字,原圖上看上去是比較模糊的,所以這個(gè)時(shí)候的閾值已經(jīng)十分適合這個(gè)場景的LoG算子使用。接下來的噪聲影響仿真便使用Threshold=0.004的閾值進(jìn)行。 給圖像添加高斯噪聲與椒鹽噪聲,不同噪聲影響的對比仿真圖如下:圖4.19高斯噪聲下的LoG算子邊緣檢測仿真圖 觀察圖4.19不難看出,LoG算子已經(jīng)盡可能完整地提取出了圖像中各個(gè)物體的邊緣線條,不僅如此,柱子以及橫梁上的高斯噪聲被LoG算子中的高斯低通濾波器有效抑制了。雖然與部分柱子因?yàn)楸桓咚乖肼曃廴镜陌l(fā)白,致使其邊緣變的模糊,從而沒能被LoG算子提取出柱子的輪廓來。但是觀察橫梁的邊緣,其平滑噪聲效果仍舊十分明顯。至于草地和石頭上的高斯噪聲白點(diǎn)雖然說被減少了不少,但依然存在,可見其抑制噪聲的效果也是有限的。圖4.20椒鹽噪聲下的LoG算子邊緣檢測仿真圖 LoG算子對于椒鹽噪聲的處理效果沒有高斯噪聲那么明顯,但是也能看出有部分椒鹽噪聲被過濾了,并且大部分椒鹽噪聲在圖中的表現(xiàn)形式變成了一個(gè)個(gè)放大了的小圓圈。這種圓圈特征比較明顯,意味著可以在LoG算子運(yùn)算之后,進(jìn)行的噪聲消除的操作也更加容易。 綜合以上的分析,可以證明LoG算子對噪聲有著較好的抑制作用,且邊緣定位的精度也很準(zhǔn)確,它可以說是Laplacian的改進(jìn)版本。4.4Canny算子 Canny算子一般包含了三個(gè)步驟:1、濾波:利用高斯濾波器對圖像進(jìn)行噪聲平滑處理,得到一個(gè)與原始圖像相比有些模糊的圖片。2、尋找梯度:利用一階偏導(dǎo)的有限差分公式計(jì)算出每個(gè)像素點(diǎn)的梯度與方向。3、邊緣跟蹤:設(shè)定閾值來確定大小在什么范圍的梯度是邊緣,Canny算子中使用的是滯后閾值。滯后閾值有兩個(gè)閾值組成:高閾值和低閾值。高閾值用來跟蹤較為明顯且容易確定的強(qiáng)邊緣,而低閾值則是用來跟蹤那些較為模糊、難以確定的弱邊緣。Canny算子的性能和其選擇的參數(shù)(高斯濾波器大小和閾值)有很大關(guān)系。因此在不同的場景選擇不同的合適的參數(shù)是十分重要的。MATLAB的Canny算子邊緣檢測代碼如下:圖4.21MATLAB的Canny算子邊緣檢測代碼 不同Threshold閾值的仿真結(jié)果如下;圖22.Threshold=0.05的Canny算子仿真結(jié)果圖圖4.23Threshold=0.1的Canny算子仿真結(jié)果圖圖4.24Threshold=0.2的Canny算子仿真結(jié)果圖 通過以上三張圖可以看出,圖4.22中Threshold=0.05時(shí)由于閾值選取過小導(dǎo)致產(chǎn)生過多的偽邊緣。圖4.23中的Threshold=0.1時(shí)閾值選取較為適中,但是產(chǎn)生的邊緣與實(shí)際有些偏差,就如“廣東工業(yè)大學(xué)”的“學(xué)”字都變形了。圖4.24就是Threshold選的太大,使得一部分不明顯的邊緣被舍棄。 因此在Canny算子中選用0.1的閾值較為合適。Edge函數(shù)對于Canny算子還提供了高斯濾波器標(biāo)準(zhǔn)差參數(shù)的選項(xiàng),下面是不同標(biāo)準(zhǔn)差下的仿真結(jié)果:圖4.25sigma=5的仿真結(jié)果 當(dāng)sigma=5的時(shí)候,可以看到輸出圖像只保留了原圖的大致特征輪廓,其細(xì)節(jié)完全被掩蓋,這時(shí)候的圖像被過分模糊化了,因此sigma值不可過大。圖4.26sigma=1的仿真結(jié)果 當(dāng)sigma=1時(shí),這時(shí)圖像中的細(xì)節(jié)紋理被保留了下來,比起sigma=5的情況來看,細(xì)節(jié)顯然要多很多,但同時(shí)也會(huì)帶來一些小噪聲的偽邊緣,這是無法避免的。 倘若將sigma繼續(xù)減小,如sigma=0.05時(shí)可以得到下圖:圖4.27sigma=0.05的仿真結(jié)果 此時(shí)的圖像所展現(xiàn)出來的線條可以說是非常細(xì)節(jié)了,首先是“廣東工業(yè)大學(xué)”字樣,甚至于原圖看上去都有些模糊的繁體“廣”字都較為完整的呈現(xiàn)出來;其次是圖片最下方的瓷磚地板,瓷磚地板的豎線紋理也有部分被保留且展現(xiàn)出來。Sigma=0.05帶來這么多邊緣細(xì)節(jié)效果的同時(shí),也使得噪聲的影響得以存活,讓大部分邊緣出現(xiàn)了許多毛刺。 濾波器的標(biāo)準(zhǔn)差σ決定著濾波器寬度,而濾波器寬度決定了濾波器的平滑程度。通過上述比較分析可以得知,濾波器的標(biāo)準(zhǔn)差σ越大,則濾波器平滑程度越強(qiáng),這時(shí)圖像的特征就會(huì)被過分模糊。而標(biāo)準(zhǔn)差σ越小,圖像的平滑程度越弱,從而圖象的細(xì)節(jié)紋理也會(huì)更多的被保留下來,但同時(shí)也會(huì)使噪聲等不在期望以內(nèi)的偽邊緣出現(xiàn)。因此需要根據(jù)不同的需求,適當(dāng)調(diào)節(jié)濾波器標(biāo)準(zhǔn)差σ的值,來獲取預(yù)期內(nèi)的Canny算子邊緣檢測效果。 評估一個(gè)算子,必不可少的就是它對噪聲的抑制作用,因此同樣的讓canny算子對不同噪聲影響下的圖像進(jìn)行運(yùn)算。因此下面對無噪聲、高斯噪聲和椒鹽噪聲影響下的圖象進(jìn)行仿真(為了增大抑制噪聲的效果,下面仿真都是在標(biāo)準(zhǔn)差sigma=2的情況下進(jìn)行的):圖4.28無噪聲影響的Canny算子仿真結(jié)果 可以看到,圖4.28中雖有些地方因?yàn)闃?biāo)準(zhǔn)差選取過大造成細(xì)節(jié)丟失,但是提取出來的邊緣線條幾乎都是十分完整且連續(xù)的,不會(huì)如同其他一階算子般有多處不連續(xù)的地方。圖4.29高斯噪聲影響的Canny算子仿真對于仿真圖中的高斯噪聲,Canny算子處理的效果相比于其他算子算是非常好的,除了石頭和草地上的高斯噪聲影響嚴(yán)重以外,而柱子和橫梁上的高斯噪聲的影響被Canny算子有效抑制了大部分,所以看到柱子和橫梁的邊緣輪廓比較清晰。不過其實(shí)如果想要將高斯噪聲過濾的更多,則可以像上面說到的,增大標(biāo)準(zhǔn)差σ來獲得更強(qiáng)的噪聲抑制效果,但是這樣獲得的物體邊緣就缺少了很多細(xì)節(jié),具體是否要增大標(biāo)準(zhǔn)差來獲得更強(qiáng)的平滑噪聲效果,還得看具體的需求。圖4.30椒鹽噪聲影響的Canny算子仿真 從圖4.30中可以看出,此時(shí)的標(biāo)準(zhǔn)差對于椒鹽噪聲顯然也有很好的抑制效果。除了少部分椒鹽噪聲造成的偽邊緣以不規(guī)則形狀呈現(xiàn)在圖中石頭中和圖中右上角以外,大部分椒鹽噪聲已經(jīng)被濾波器過濾了。而真實(shí)的邊緣除了少部分細(xì)節(jié)被忽略,大部分都被提取出來。 綜合以上的仿真分析來看,Canny算子適用范圍十分廣泛,應(yīng)用靈活。不僅能精準(zhǔn)的定位邊緣,而且對噪聲有較強(qiáng)抑制作用,還可以根據(jù)對圖像邊緣細(xì)節(jié)需求的不同,調(diào)節(jié)噪聲平滑程度。4.5常用算子的邊緣檢測比較分析及總結(jié) 對于上述一階算子,它們最大的區(qū)別就是各自模板不同。Roberts算子的模板是二階矩陣,Sobel算子和Prewitt算子模板都是三階矩陣,但二者的矩陣元素又不相同,這就導(dǎo)致它們對邊緣檢測的效果有著不同之處。通過對比以上的三個(gè)梯度算子的仿真結(jié)果,可以得出結(jié)論,Prewitt算子具有和Sobel算子相近的特點(diǎn),但是與Sobel算子有所不同的是,Prewitt算子認(rèn)為鄰域像素對當(dāng)前像素產(chǎn)生的影響是等價(jià)的,所以Prewitt的加權(quán)平均的權(quán)值是均等的。Prewitt算子和Sobel算子相較于Roberts算子好在能夠有一定的噪聲抑制作用,但是不如Roberts算子的地方就在于對邊緣的定位。 對于上述的二階算子,有LoG算子。它和一階算子最大的區(qū)別就是它是圖像灰度變化曲線二次求導(dǎo),這就使得二階算子對于灰度變化能夠更加敏感,因此對于圖像中的邊緣細(xì)節(jié),它相較于一階算子有一定優(yōu)勢。不僅如此,LoG算子還自帶有高斯濾波器,這就使得LoG算子具有比一階算子更好的噪聲抑制效果。但是如果對比LoG算子和一階算子的邊緣檢測仿真圖能夠發(fā)現(xiàn),LoG算子的細(xì)節(jié)雖然比一階算子更多,但是其邊緣線條卻不如一階算子清晰,也正是這個(gè)原因,二階算子通常被用來圖像銳化處理。 Canny算子相比于一階算子,多出了噪聲平滑的功能,并且能夠提取的邊緣比一階算子更加細(xì)致,不如一階算子的缺陷就是容易產(chǎn)生偽邊緣。Canny算子相比于LoG算子,比其多出了靈活性,Canny算子能夠靈活的調(diào)整濾波器的標(biāo)準(zhǔn)差,進(jìn)而能夠控制噪聲的平滑程度。 通過以上的分析,可以說Canny算子是比上述其他幾種算子都要完美的算子,但是并不能說它是最好的算子,因?yàn)閳D象處理技術(shù)正在進(jìn)步,未來必將有更好的算子出現(xiàn)。5 閾值分割方法 圖像分割的方法除了上述的邊緣檢測法,還有閾值分割法。閾值分割法是直接對圖像進(jìn)行分割的算法,由于閾值分割法成本低廉、實(shí)現(xiàn)簡單、性能穩(wěn)定,所以它的應(yīng)用范圍十分廣泛。 閾值分割法顧名思義,是利用閾值進(jìn)行圖像分割,它是通過設(shè)定閾值來對圖像中的像素點(diǎn)進(jìn)行分區(qū),因而閾值分割法中最為重要的便是如何選取一個(gè)適合的閾值。對于閾值的選取現(xiàn)今已經(jīng)存在在了多種方法,如:迭代法、OTSU(最大類間方差法)、雙峰法、最大熵法、自適應(yīng)閾值等等,這些方法各有各的優(yōu)點(diǎn)。下面將對迭代法、OTSU和雙峰法進(jìn)行MATLAB仿真。5.1雙峰法 雙峰法也稱作灰度直方圖雙峰法,是Prewitt在二十世紀(jì)七十年代提出的。它的原理是當(dāng)圖像的灰度直方圖呈比較明顯的雙峰狀態(tài),則選取雙峰間的谷底極小值作為閾值。 雙峰法雖然有著方法簡單、效率快的優(yōu)點(diǎn),但是同時(shí)也具有很大的局限性。如當(dāng)雙峰距離不遠(yuǎn)時(shí),分割效果是不錯(cuò)的,倘若雙峰距離較遠(yuǎn),很可能是前景與背景有部分灰度值重疊,這時(shí)的情況就不適用雙峰法。并且當(dāng)多張圖片使用同個(gè)灰度直方圖,由于其分割過于死板,很可能導(dǎo)致分割失敗。 雖然雙峰法已經(jīng)算是過時(shí)的產(chǎn)物,但是它為后來的分割方法打下了基礎(chǔ)。 下面是對雙峰法的MATLAB仿真,首先需要繪制出圖像的灰度直方圖,利用MATLAB提供的imhist指令生成直方圖:圖5.1哈士奇原圖圖5.2哈士奇圖的灰度直方圖 通過觀察圖5.2的灰度直方圖可以估計(jì)兩個(gè)較大的波峰是在灰度值為145和230的附近,因此大約可以知道雙峰法需要的閾值是在[190,200]的區(qū)間。通過指令[count,x]=imhist(I)(x:灰度級)可以得到變量:count(每一級灰度像素像素個(gè)數(shù))。打開count變量表,找到需要的區(qū)間,如下圖:圖5.3count變量表 通過圖5.3count變量表的查找,可以找到兩個(gè)波峰之間的波谷為變量表中序號(hào)是194的876,而序號(hào)為194時(shí),灰度值是193,所以可以確定波谷所在的點(diǎn)時(shí)(x,count)=(193,876),從而可以確定雙峰法所設(shè)定的閾值為193/255。 利用圖5.4中的指令將圖像按照設(shè)定閾值進(jìn)行分割:圖5.4雙峰法MATLAB仿真代碼圖5.5哈士奇圖雙峰法分割仿真圖 通過仿真圖5.5可以看到,此時(shí)的閾值只分割出了4只小狗的輪廓,但是小狗的毛發(fā)、四肢以及五官都被分到黑色一類,不僅如此,四只小狗前面的草地也和它們?nèi)跒橐惑w,這種分割效果是不太理想的,從另一方面也說明了雙峰法更適合元素構(gòu)成比較簡單的圖像,對于復(fù)雜的圖像分割效果不盡如人意。為了驗(yàn)證雙峰法的適用范圍,下面使用了一張圖像構(gòu)成簡單的五毛硬幣圖來進(jìn)行分割仿真,與上面的結(jié)果進(jìn)行對比。圖5.6硬幣原圖 接著將這張硬幣圖的直方圖繪制出來:圖5.7硬幣圖的灰度直方圖 同樣的找到其波谷處的閾值,進(jìn)行分割:圖5.8硬幣圖雙峰法分割仿真結(jié)果從上圖5.8中可以看到,五毛硬幣的輪廓分割的較為完整,硬幣右邊邊緣的反光以及陰影也呈現(xiàn)了出來,可以看得出分割效果相比于上面的四只哈士奇圖像要好很多,這正是因?yàn)橛矌艌D像構(gòu)成比哈士奇圖像簡單。但是由于其直方圖波谷過于平坦,導(dǎo)致分割后的圖像對于細(xì)節(jié)處理不夠到位,就如硬幣背面的菊花圖案只能看到幾根因反光產(chǎn)生的線條。 通過以上的仿真結(jié)果分析得知,灰度直方圖雙峰法進(jìn)行分割圖像,其步驟確實(shí)很簡單,而且效率很快,但是它的適用范圍很小,對于復(fù)雜圖像分割效果差。5.2最大類間方差法 選取閾值分割法的閾值的其他方法之一就是最大類間方差法,它是Nobuyukiotsu在1978年提出的一種自適應(yīng)閾值分割的算法,因此最大類間方差法也用其名字來命名,稱作大津算法或OTSU。 大津法的原理是:將圖像分為前景和后景兩類像素,假設(shè)前、后景兩類被最理想狀態(tài)地分割,則這時(shí)前、后景組合散布(類內(nèi)方差)最小,由于成對的距離平方和是常數(shù),所以此時(shí)兩類之間的方差最大。之所以它被稱作最大類間方差法,正是因?yàn)閳D像按照這種方法進(jìn)行分割之后,圖像中前景類與后景類之間的方差最大。倘若前景與后景兩類被錯(cuò)分一部分,則會(huì)導(dǎo)致類內(nèi)方差變大,類間方差差變小,因此最大類間方差法也意味著錯(cuò)分概率最小。由于它計(jì)算簡單,且不受亮度、對比度的影響,所以它被公認(rèn)為是閾值分割法之中的最佳算法,自然而然的它也成為被應(yīng)用在圖像分割中最廣泛的閾值分割算法。在大津算法中,尋找所有能找到的能使類內(nèi)方差最小的閾值,定義為兩個(gè)類的方差的加權(quán)和:σω2(t)=ω0(t)σ公式(5.1)中,權(quán)值ωi是由閾值t分隔的兩個(gè)類的概率,σi大津證明了最小類內(nèi)方差和最大類間方差是相同的,將類間方差用類概率(類像素占比)ωi和類均值μi來表示:σb2(t)=σ2-σω2(t)=ω1(t)ω 在公式(5.2)中有:后景類的像素占比:ω0(t)=i=tt?1p(i) 前景類的像素占比:ω1(t)=i=tL?1p(i) 公式(5.3)和(5.4)的兩個(gè)類概率是在L個(gè)灰度級的直方圖中計(jì)算出來的。而類均值(類灰度均值)由公式(5.5)和(5.6)給出:后景類灰度均值:μ0t=i=0t?1ip(i)ω0(t) 前景類灰度均值:μ1t=i=0L?1ip(i)ω1(t) μTt=i=0L?1ip(i) 上述所有公式中,p(i)為第i個(gè)直方圖面元中心的值。類概率和類均值可以迭代計(jì)算。 最大類間方差算法實(shí)現(xiàn)共有四個(gè)步驟,第一步是計(jì)算出輸入圖像的每個(gè)灰度級的直方圖和概率,這一步可以使用MATLAB中的imhist指令來完成;第二步是設(shè)置閾值t為0時(shí)類概率和類均值的初始值;第三步是遍歷所有可能的閾值t,然后得到ωi(t)和μi(t)的值,通過兩個(gè)值計(jì)算方差 MATLAB中已經(jīng)將大津法集成好了,提供了一個(gè)接口函數(shù)graythresh供用戶使用,大津法進(jìn)行圖像分割的代碼如下圖所示:圖5.9大津法圖像分割MATLAB仿真代碼大津法仿真結(jié)果如下圖所示:圖5.10大津法圖像分割MATLAB仿真圖 從上圖5.10中可以觀察到,四只哈士奇作為前景,草叢作為背景分割的十分干凈。和雙峰法得到的圖片進(jìn)行對比,從大津法得到的圖中四只哈士奇毛發(fā)的黑白色差都能夠體現(xiàn)出來,能夠清晰地分辨出四只哈士奇的五官,并且哈士奇前方的草地也和哈士奇有著明顯的區(qū)分。反觀雙峰法的分割圖,職能看得出四只哈士奇的身體輪廓,并且前方的草地和它們?nèi)跒橐惑w。這樣不難看出,最大類間方差法選取的閾值要比雙峰法好很多,其分割出的圖像細(xì)節(jié)相較于雙峰法多了許多,同時(shí)也說明其圖像分割效果比雙峰法好很多,好的圖像分割效果對于之后的圖像分析步驟是十分有效的,因此最大類間方差法能作為最佳閾值選取的算法是有依據(jù)的。 綜合以上的分析可以得到結(jié)論,大津法不僅選取閾值的效率高,并且選取的閾值對圖像分割的效果也非常好。但其實(shí)大津法適用范圍僅對于單目標(biāo)的提取,雙峰法同樣如此,因?yàn)檫@兩個(gè)算法都是基于全局閾值分割的。全局閾值分割就有可能出現(xiàn)感興趣的目標(biāo)分布在所選閾值的兩側(cè)的情況,這樣就會(huì)出現(xiàn)有一部分感興趣目標(biāo)被分錯(cuò)類,從而在分割后的二值圖像中丟失。5.3迭代法 迭代是數(shù)值分析中通過一個(gè)初始估計(jì)值作為起點(diǎn)不斷尋找近似解來解決問題的過程,而實(shí)現(xiàn)這個(gè)過程的方法統(tǒng)稱為迭代法。第一個(gè)求解線性系統(tǒng)的迭代方法出現(xiàn)在高斯給他的一個(gè)學(xué)生的信中。他提出通過反復(fù)求解殘差最大的分量來求解4×4方程組。迭代法最初大多是被用來解決方程或者方程組,迭代方法通常被定義為:xk+1=ψx(k)(k≥0) (5.8) 假設(shè)對于一個(gè)線性系統(tǒng)Ax=b有精確解x?,則其近似解與精確解的誤差可表示為:ek=xk-x?(k≥0) (倘若存在一個(gè)矩陣C?Rn×n,使得ek+1=Cek(?k≥0),則這個(gè)矩陣稱為迭代矩陣,如果limk→∞ 在一個(gè)重要定理中,認(rèn)為對于給定的迭代方法及其迭代矩陣C,當(dāng)且僅當(dāng)其譜半徑ρ(C)小于1時(shí),它是收斂的。 最基本的迭代方法一般將線性系統(tǒng)中的線性系數(shù)矩陣A分解:A=M–N,在此式中的M矩陣是可逆的,于是迭代方法可以變換為:Mxk+1=Nxk+b(k≥0) 而后迭代矩陣C可由上述公式5.10得到:C=I–M-1A=M-1N (5.11) 在圖像處理中,迭代法應(yīng)用于圖像分割的閾值分割法,它是基于雙峰法的改進(jìn)方法,其利用迭代法選取閾值是利用了迭代法中逼近的思想,即利用初始的近似閾值來分割圖像后,基于分割后的圖像再次選取一個(gè)閾值繼續(xù)分割,直至求得的前景與背景的平均灰度值不再變化則可確定最終閾值。 閾值分割的迭代法具體實(shí)現(xiàn)步驟為:第一步,根據(jù)灰度直方圖計(jì)算出圖像最大、最小灰度值,分別記作HMAX、HMIN,而后求出求出初始閾值T0=HMAX+HMIN2;第二步,根據(jù)求得的閾值T分割圖像,將其分割為前景、背景,然后求出前景和背景的灰度均值Hf、 在MATLAB中用迭代法選取閾值進(jìn)行分割的代碼如下:圖5.11迭代法閾值分割的MATLAB代碼實(shí)現(xiàn) 圖5.11的代碼中利用while循環(huán)進(jìn)行循環(huán)迭代,其循環(huán)end的判斷條件是結(jié)束標(biāo)志位b=0,當(dāng)前景和背景的灰度均值不再變化,即最后的閾值ti與上一次求得的閾值相等時(shí),設(shè)置標(biāo)志位b為0從而終止迭代循環(huán)。其仿真結(jié)果為:圖5.12迭代法閾值分割的仿真結(jié)果 通過圖5.12,對比迭代法和OTSU方法選取的閾值,迭代法對本文中仿真所用的四只哈士奇的圖像求得的閾值為138,而上文的大津法求得的閾值為140,發(fā)現(xiàn)迭代法求得的閾值和最大類間方差法求得的閾值幾乎相同,換句話說,也就是迭代法分割效果是和最大類間方差法的分割效果幾乎相同。通過比較迭代法和大津法的分割仿真圖也幾乎看不出差別。 雖然迭代法和大津法對本文所選用的圖像分割效果相差不大,但是在圖像種類繁多的實(shí)際應(yīng)用中,大津法閾值分割對圖像的分割效果要比迭代法穩(wěn)定很多,因?yàn)榇蠼蚍◤脑砩媳闶謬?yán)謹(jǐn),圖像錯(cuò)分概率較低,所以大津法最優(yōu)閾值算法的地位還是十分牢固的,而迭代法對于某些特定種類的圖像,可能會(huì)產(chǎn)生難以控制的分割效果。6 總結(jié)與展望6.1總結(jié)MATLAB對于圖像處理提供了很多支持,其內(nèi)集成了許多圖像邊緣檢測的算子代碼實(shí)現(xiàn),并且提供了很多接口供用戶使用,這為用戶進(jìn)行圖像處理各個(gè)步驟時(shí)提供極大便利。本文在MATLAB軟件支持下完成了對于圖像分割中邊緣檢測法的各個(gè)算子以及閾值分割法的各個(gè)閾值算法的仿真,經(jīng)過仿真結(jié)果的對比得到以下結(jié)論:對于邊緣檢測法的算子,二階算子相較于一階算子來說,對邊緣細(xì)節(jié)的把握更為細(xì)致,而其中Canny算子的性能要比其他算子更好一些,這是因?yàn)樗倪m用范圍廣、靈活性好、對噪聲平滑作用強(qiáng)。對于閾值分割法的各個(gè)方法,要數(shù)大津法選取的閾值為最優(yōu),雙峰法作為最早的閾值算法具有重大意義,是未來出現(xiàn)的各種閾值算法的基礎(chǔ),而迭代法雖在本文中的仿真效果和大津法相差不大,但是某些復(fù)雜情況會(huì)導(dǎo)致不可控的分割效果,從而導(dǎo)致分割失敗。6.2展望縱觀圖像分割的研究歷史,雖然不斷的有新興的算法、分割方法出現(xiàn),但是仍舊沒有一個(gè)能夠普遍使用的分割方法或者算法,并且對于圖像分割雖有許多評判分割性能的分割標(biāo)準(zhǔn),但是也同樣沒有一種能夠通用的標(biāo)準(zhǔn)。圖像分割至今仍舊是圖像處理領(lǐng)域的一大難題,但是按照現(xiàn)今的研究趨勢來看,未來將會(huì)不斷地有圖像分割的新理論、新方法出現(xiàn),會(huì)不斷地有改進(jìn)的算法出現(xiàn)。還有一種大的趨勢就是將會(huì)綜合運(yùn)用多種方法進(jìn)行分割,這也是因?yàn)閱为?dú)一種算法或者方法無法很好地應(yīng)對種類龐大且復(fù)雜的圖像。相信隨著科技不斷進(jìn)步,研究者的共同努力,不久的將來一定能攻克下圖像分割這一座大山。參考 文獻(xiàn)[1]周俊勇,陳永良,黃衛(wèi)躍.最大類間方差法在果蔬種類識(shí)別中的應(yīng)用研究[J].科技通報(bào),2019,35(03):123-126.[2]王小丫.圖像分割算法研究與展望[J].科技傳播,2019(08):165-166.[3]武紅玉.閾值分割算法在圖像處理中的應(yīng)用[J].科技信息,2012(27):201-202.[4]楊修國.圖像閾值分割方法研究與分析[D].華東師范大學(xué),2009.[5]楊修國.關(guān)于直方圖雙峰法的研究與改進(jìn)[J].電子設(shè)計(jì)工程,2012,20(12):176-179.[6]李楊靜,劉藝航,王梓,王迎港,宋琳琳.基于Matlab的圖像分割[J].無線互聯(lián)科技,2018,15(15):53-54.[7]肖雪梅.Sobel算子在醫(yī)學(xué)圖像邊緣檢測中的應(yīng)用研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2019,45(04):39-41.[8]張陽,劉纏牢,盧偉家,劉璐.基于LoG算子的雙濾波邊緣檢測算法[J].電子測量技術(shù),2019,42(04):95-98.[9]劉現(xiàn),蔡淑芳,黃語燕.基于Canny算子的福橘圖像邊緣檢測研究[J].東南園藝,2018,6(06):19-22.[10]安建堯,李金新,孫雙平.基于Prewitt算子的紅外圖像邊緣檢測改進(jìn)算法[J].杭州電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,38(05):18-23+39.[11]唐陽山,徐忠?guī)?黃賢丞,朱停仃,李棟梁.基于Roberts算子的車道線圖像的邊緣檢測研究[J].遼寧工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,37(06):383-386+390.[12]關(guān)雪梅.基于Matlab的幾種圖像銳化處理算法研究[J].商丘師范學(xué)院學(xué)報(bào),2018,34(12):12-14.[13]王宗宜.探討MATLAB在數(shù)字圖像處理中的應(yīng)用[J].數(shù)字通信世界,2019(01):209+232.[14]
馬偵.
數(shù)字圖像幾種邊緣檢測算法研究[J]
.
電子制作,2018,(4):68-69
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《安全感悟分享》課件
- 《職業(yè)適應(yīng)與發(fā)展》課件
- 《生產(chǎn)安全事故應(yīng)急》課件
- 2024教師發(fā)言稿(34篇)
- 藝術(shù)與人生和社會(huì)的關(guān)系
- 單位管理制度匯編大全【人事管理】
- 單位管理制度分享合集【人員管理篇】十篇
- 單位管理制度分享大合集【人員管理】十篇
- 單位管理制度范文大合集【員工管理篇】十篇
- 單位管理制度呈現(xiàn)大全【人員管理】
- 河南省平頂山市魯山縣2023-2024學(xué)年二年級上學(xué)期期末語文試卷
- 中原文化(歷史篇)智慧樹知到期末考試答案2024年
- 金蝶軟件旗艦版月底結(jié)賬作業(yè)流程操作
- (正式版)JBT 14762-2024 電動(dòng)摩托車和電動(dòng)輕便摩托車用閥控式鉛酸蓄電池
- 勞動(dòng)教育智慧樹知到期末考試答案2024年
- 大疆慧飛無人機(jī)考試題庫附有答案
- 初中歷史統(tǒng)編九年級材料論述題觀點(diǎn)整合(世界史)【學(xué)案】
- 2023-2024學(xué)年宜賓市數(shù)學(xué)九年級上冊期末考試試題(含解析)
- 熱電廠檢修方案
- 2024年江蘇省高中學(xué)業(yè)水平考試合格考生物試卷試題(含答案詳解)
- 個(gè)人分析報(bào)告優(yōu)勢與劣勢
評論
0/150
提交評論