




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章圖像分割匯報人:陳西PPT工作室閾值分割區域分割邊緣檢測Hough變換目錄第一部分第二部分第三部分第四部分分水嶺算法第五部分閾值分割第一部分閾值分割
閾值分割法是一種基于區域的圖像分割技術,它不僅可以極大的壓縮數據量,而且也大大簡化了分析和處理步驟。閾值分割法是一種傳統的最常用的圖像分割方法,特別適用于目標和背景占據不同灰度級范圍的圖像。圖像的閾值分割是一種按圖像像素灰度幅度進行分割的方法,把圖像的灰度分成不同的等級,然后用設置灰度門限(閾值)的方法確定有意義的區域或要分割物體的邊界。閾值分割操作被定義為:
因此,閾值分割將圖像內灰度值處于某一指定灰度值范圍內全部點選到輸出區域S中。如果光照能保持恒定,閾值和能在系統設置時被選定且永遠不用被調整。
閾值分割法閾值分割法對于只有背景和目標兩類對象的灰度圖像來說,閾值選取過高,容易把大量的目標誤判為背景;閾值選取過低,又容易把大量的背景誤判為目標。一般來說,閾值分割可以分成以下三步:(1)確定閾值;(2)將閾值與像素灰度值進行比較;(3)把像素分類。閾值分割的優點是計算簡單、運算效率較高、速度快。閾值分割的幾個難點是:①在圖像分割之前,無法確定圖像分割生成區域的數目;②閾值的確定,因為閾值的選擇直接影響分割的精度及分割后的圖像進行描述分析的正確性。如果圖像由暗色背景上得較亮物體組成,以這樣組成方式的圖像的灰度直方圖具有明顯谷底,從背景中提取物體的一種很明顯的方法就是選擇兩峰之間的谷底對應的灰度值T作為閾值進行圖像分割。T值的選取如圖所示:根據直方圖谷底確定閾值法根據直方圖谷底確定閾值
分割后的圖像由下式給出:
根據直方圖谷底確定閾值法對于有多個峰值的直方圖,可以選擇多個閾值。例如,當有兩個明顯谷底時,可以表示為下式:
在Halcon中直方圖谷底確定閾值算子如下:threshold(Image:Region:MinGray,MaxGray:)程序如下:*讀取圖像
read_image(Image,'letters')*獲得圖像尺寸
get_image_size(Image,Width,Height)*關閉、重新打開窗口
dev_close_window()
dev_open_window(0,0,Width/2,Height/2,'black',WindowID)*設置輸出窗口顏色為紅色
dev_set_color('red')*計算圖像的灰度直方圖
gray_histo(Image,Image,AbsoluteHisto,RelativeHisto)*從直方圖中確定灰度值閾值histo_to_thresh(RelativeHisto,8,MinThresh,MaxThresh)*設置區域顯示的顏色數目
dev_set_colored(12)*根據計算得到的MinThresh、MaxThresh進行閾值分割,并顯示區域threshold(Image,Region,MinThresh,MaxThresh)*顯示區域
dev_display(Region)根據直方圖谷底確定閾值分割實例(a)原圖(b)閾值分割結果圖程序執行結果如圖所示:有時手動設定閾值并不是一個嚴謹的方法,因為人對圖像灰度的感受并不精準,即使對同一場景,當光線有微妙變化時,灰度也會有差異。在連續采集的圖像中,圖像的灰度也是動態變化的,環境光照、拍攝角度等因素都會影響圖像的灰度。如果閾值是一個固定的值,那么在處理連續圖像時結果會不夠準確。因此,可以使用自適應閾值進行調節。自適應閾值是一種基于直方圖的閾值。其原理是,以灰度直方圖中出現的谷底為分割點,對灰度直方圖的波峰進行分割。因此,有多少個波峰,就會分割出多少個區域。實驗法在Halcon中進行自適應閾值處理算子如下:auto_threshold(Image:Regions:Sigma:)基于直方圖的自動閾值分割實例
程序執行結果如圖所示:(a)原圖(b)閾值分割結果圖
程序如下:read_image(Aegypt1,'egypt1')auto_threshold(Aegypt1,Regions,4)dev_display(Regions)它適用于一些無法用單一灰度進行分割的情況,如背景灰度比較復雜,有的部分比前景目標亮,有的部分比前景目標暗;又如前景目標包含多種灰度,因而無法用全局閾值完成分割。該算子利用鄰域,通過局部灰度對比,找到一個合適的閥值進行分割。dyn_threshold算子的應用步驟一般分三步:首先,讀取原始圖像;然后,使用平滑濾波器對原始圖像進行適當平滑;最后,使用dyn_threshold算子比較原始圖像與均值處理后的圖像局部像素差異,將差異大于設定值的點提取出來。局部閾值分割法程序如下:*關閉窗口
dev_close_window()*獲取圖像
read_image(Image,'photometric_stereo/embossed_01')*獲得圖像尺寸
get_image_size(Image,Width,Height)*打開適應圖像大小的窗口
dev_open_window(0,0,Width,Height,'black',WindowHandle1)*在圖像上使用均值濾波器進行適當平滑mean_image(Image,ImageMean,59,59)*動態閾值分割,提取圓區域dyn_threshold(Image,ImageMean,RegionDynThresh,15,'not_equal')*顯示圖像
dev_display(Image)*顯示提取區域
dev_display(RegionDynThresh)
局部閾值分割算子dyn_threshold實例(a)原圖(b)dyn_threshold閾值分割結果程序執行結果如圖所示:區域分割第二部分
區域分割
一幅圖像中屬于同一區域的像素一般具有相同或相似的屬性,區域分割通過利用的是圖像該性質進行劃分,使具有相同像素的像素歸屬同一區域,不同屬性的像素歸屬不同區域。傳統的區域分割方法有區域生長和區域分裂與合并,其中最基礎的是區域生長法。區域生長法區域生長法的基本思想是將一幅圖像分成許多小的區域,并將具有相似性質的像素集合起來構成區域。具體來如下:首先在圖像上選定一個“種子”像素或者“種子”區域;然后從“種子”的鄰域像素開始搜尋,將種子像素周圍鄰域中與種子像素有相同性質或相似性質的像素(根據某種事先確定的生長或相似準則來判斷)合并到種子像素所在的區域中;最后進一步將這些新像素作為新的種子像素繼續進行上述操作,直到再沒有滿足條件的像素可被包括進來為止,圖像分割隨之完成。區域生長法思想很簡單,只需要若干種子點即可將具有相同特征的聯通區域分割出來。在生長過程中的生長準則可以自由的指定,同時可以在同一時刻挑選多個準則。區域生長法1、區域生長法的過程如果以灰度分布相似性作為生長準則來決定合并的區域,則需要比較鄰接區域的累積直方圖并檢測其相似性,過程如下:(1)把圖像分成互不重疊的合適小區域;(2)比較各個鄰接小區域的累積灰度直方圖。柯爾莫哥洛夫-斯米諾夫檢測:
平滑差分檢測:
區域生長法2、在Halcon中區域生長法的算子在Halcon中區域生長法的算子如下:①regiongrowing(Image:Regions:Row,Column,Tolerance,MinSize:)②regiongrowing_mean(Image:Regions:StartRows,StartColumns,Tolerance,MinSize:)該算子指明了開始進行區域生長算法的點(x,y)的坐標,并以指定的點為中心,不斷搜索其鄰域,尋找符合設定條件的區域。這里的條件有兩種,一是區域邊緣的灰度值與當前均值圖中對應的灰度值的差小于Tolerance參數的值;二是區域包含的像素數應大于MinSize參數的值。程序如下:*讀取圖像read_image(Image,'fabrik')*對圖像進行均值處理,選用circle類型的中值濾波器median_image(Image,ImageMedian,'circle',2,'mirrored')*使用regiongrowing算子尋找顏色相近的鄰域regiongrowing(ImageMedian,Regions,1,1,2,5000)*對圖像進行區域分割,提取滿足各個條件的各個獨立區域shape_trans(Regions,Centers,'inner_center')connection(Centers,SingleCenters)*計算出初步提取的區域的中心點坐標area_center(SingleCenters,Area,Row,Column)*以均值灰度圖像為輸入,進行區域增長計算,計算的起始坐標為上一步的各區域中心regiongrowing_mean(ImageMedian,RegionsMean,Row,Column,25,100)區域生長法實例(a)原圖(b)regiongrowing執行結果程序執行結果如圖所示:(c)regiongrowing-mean執行結果區域分裂合并法當事先完全不了解區域形狀和區域數目時,可采用分裂合并法。從上面圖像分割的方法中了解到,圖像閾值分割法可以認為是從上到下(從整幅圖像根據不同的閾值分成不同區域)對圖像進行分開,而區域生長法相當于從下往上(從種子像素開始不斷接納新像素最后構成整幅圖像)不斷對像素進行合并。如果將這兩種方法結合起來對圖像進行劃分,便是分裂合并算法。因此,其實質是先把圖像分成任意大小而且不重疊的區域,然后再合并或分裂這些區域以滿足分割的要求。分裂合并算法是基于四叉樹思想,下面先對四叉樹進行簡單介紹。區域分裂合并法1.四叉樹令R表示整幅圖像區域,并選擇一個屬性Q。對R進行分割的一種方法是依次將它細分為越來越小的四象限區域,以便對于任何區域有
,從整個區域開始,如果
,則將該區域再次細分為四個子象限區域,以此類推。
四叉樹原理圖如圖所示:
(a)被分割的圖像
(b)對應的四叉圖區域分裂合并法前述討論可以小結為如下過程:1.對
滿足的任何區域
,分裂為4個不相交的象限區域。2.當不可能進一步分裂時,對滿足
條件的任意兩個鄰接區域
和
進行聚合。3.當無法進一步聚合時,終止算法。區域分裂合并法2.利用四叉樹進行圖像分割在圖像四叉樹分割時,需要用到圖像區域內和區域間的均一性。均一性準則是區域是否合并的判斷條件,可以選擇的形式有:(1)區域中灰度最大值與最小值的方差小于某選定值;(2)兩區域平均灰度之差及方差小于某選定值;(3)兩區域的紋理特征相同;(4)兩區域參數統計檢驗結果相同;(5)兩區域的灰度分布函數之差小于某選定值。區域分裂合并法2.利用四叉樹進行圖像分割利用這些“一致性謂語”實現圖像分割的基本過程如下:(1)初始化:生成圖像的四叉樹數據結構。(2)合并:根據經驗和任務需要,從四叉樹的某一層開始,由下向上檢測每一個結點的一致性準則。(3)分裂:考慮上一步不能合并的子塊,如果它的子結點不滿足一致性準則,將這個結點永久地分為4個子塊。(4)由于人為地將圖像進行四叉樹分解,可能會將同一區域的像素分在不能按照四叉樹合并的子塊內,因此需要搜索所有的圖像塊,將鄰近的未合并的子塊合并為一個區域。(5)由于噪聲影響或者按照四叉樹劃分邊緣未對準,進行上述操作后可能仍存在大量的小區域,為了消除這些影響,可以將它們按照相似性準則歸入鄰近的大區域內。邊緣檢測第三部分邊緣檢測
邊緣是指圖像中像素灰度有階躍變化或屋頂狀變化的那些像素的集合。它包含了豐實的信息,是圖像識別中抽取的重要屬性。邊緣檢測是圖像處理和計算機視覺中的基本問題,因此,我們需要理解邊緣檢測的相關知識。
邊緣檢測和區域劃分是圖像分割的兩種不同的方法,二者具有相互補充的特點。從數學上看,圖像的模糊相當于圖像被平均或積分,為實現圖像的銳化,必須用它的反運算“微分”加強高頻分量作用,使輪廓清晰。邊緣檢測原理梯度對應一階導數,對于一個連續圖像函數
,梯度矢量定義為:
梯度的幅度為:
梯度的方向為:
邊緣檢測的一般流程如下:(1)獲取圖像。(2)選擇感興趣區域。這是為了減少計算量,加快處理速度。(3)圖像濾波。對輸入圖像使用邊緣濾波器是采集后的一個關鍵步驟。(4)提取邊緣。將符合條件的邊緣提取出來,應用濾波器之后,可以使用閾值處理將圖像中的高亮邊緣提取出來。(5)邊緣處理。根據檢測的需要對提取出的邊緣進行處理。(6)顯示結果。將結果繪制在窗口中,以表現直觀的邊緣提取效果。邊緣檢測原理Roberts算子利用局部差分算子尋找邊緣,邊緣定位較準,但容易丟失一部分邊緣,同時由于圖像沒有經過平滑處理,因此不具有抑制噪聲的能力。該算子對具有陡峭邊緣且含噪聲少的圖像處理效果較好。
稱為Roberts交叉算子。在實際應用中為簡化計算,用梯度函數的Roberts絕對值來近似:
用卷積模板表示為:
,其中
和
由模板所示。
Roberts邊緣檢測算子
Roberts算子*讀取圖像
read_image(Image,'fabrik')*用Roberts濾波器提取邊緣
roberts(Image,ImageRoberts,'roberts_max')*進行閾值分割
threshold(ImageRoberts,Region,9,255)*進行區域骨骼化
skeleton(Region,Skeleton)*顯示圖像
dev_display(Image)*設置輸出顏色為紅色
dev_set_color('red')*顯示骨骼
dev_display(Skeleton)
5.2.1區域生長法實例(a)原圖(b)閾值后程序執行結果如圖所示:(c)邊緣詭取并骨骼化Roberts邊緣提取分割實例Prewitt和Sobel算子的方程完全一樣,只是常量c=1,其卷積模板如圖所示:由于常量c不同,這一算子與Sobel算子不同的地方在于沒有把重點放在接近模板中心的像素點。當用兩個掩模板(卷積算子)組成邊緣檢測器時,通常取較大的幅度作為輸出值,這使得它們對邊緣的走向有些敏感。取它們的平方和的開方可以獲得性能更一致的全方位的響應,這與真實的梯度值更接近。圖像增強的點運算Prewitt邊緣檢測算子另一種方法是,可以將Prewitt以算子擴展成8個方向,即模板邊緣算子,這些算子樣板由理想的邊緣子圖構成。依次用邊緣樣板去檢測圖像,與被檢測區域原圖相似的樣板給出最大值。用這個最大值作為算子的輸出值,這樣可將邊緣像素檢測出來。定義Prewitt邊緣檢測算子模板如圖所示:Prewitt邊緣檢測算子模板程序如下:*讀取圖像
read_image(Image,'fabrik')*用prewitt算子進行邊緣提取prewitt_amp(Image,ImageEdgeAmp)*進行閾值操作
threshold(ImageEdgeAmp,Region,20,255)*骨骼化操作
skeleton(Region,Skeleton)*顯示圖像
dev_display(Image)*設置輸出顏色為紅色dev_set_color('red')*顯示骨骼圖像
dev_display(Skeleton)
5.2.1區域生長法實例(a)原圖(c)閾值后程序執行結果如圖所示:(d)骨骼化Prewitt邊緣提取實例(b)Prewitt邊緣提取Kirsch算法由
八個方向的模板決定,將
的模板元素分別與當前像素點的模板區域的像素點相乘,然后選八個值中最大的值作為中央像素的邊緣強度。
其中:
Kirsch算法*讀取圖像
read_image(Image,'fabrik')*用kirsch算子進行邊緣檢測kirsch_amp(Image,ImageEdgeAmp)*進行閾值操作
threshold(ImageEdgeAmp,Region,70,255)*骨骼化操作
skeleton(Region,Skeleton)*顯示圖像
dev_display(Image)*設置輸出顏色為紅色dev_set_color('red')*顯示骨骼圖像
dev_display(Skeleton)
5.2.1區域生長法實例(a)原圖(c)閾值后程序執行結果如圖所示:(d)骨骼化Kirsch邊緣提取實例(b)Kirsch邊緣提取
程序如下:*關閉窗口
dev_close_window()*獲取圖像
read_image(Image,'mreut')*獲得圖像大小
get_image_size(Image,Width,Height)*打開與圖像大小相適應的窗口dev_open_window(0,0,Width,Height,'black',WindowID)*設置窗口的字體,14號字,CourierNew字體,粗體set_display_font(WindowID,14,'mono','true','false')*進行高斯-拉普拉斯變換laplace_of_gauss(Image,ImageLaplace,5)*通過提取高斯-拉普拉斯圖像上的零交叉點進行邊緣檢測zero_crossing(ImageLaplace,RegionCrossing2)程序執行結果如圖所示:(a)原圖(b)高斯-拉普拉斯邊緣提取圖高斯-拉普拉斯邊緣提取實例(c)零交叉點邊緣檢測效果圖Canny邊緣檢測算子是一種具有較好邊緣檢測性能的算子,利用高斯函數的一階微分性質,把邊緣檢測問題轉換為檢測準則函數極大值的問題.能在噪聲抑制和邊緣檢測之間取得較好的折中。一般來說,圖像邊緣檢測必須能有效地抑制噪聲,且有較高的信噪比,這樣檢測的邊緣質量也越高。Canny邊緣檢測就是極小化由圖像信噪比和邊緣定位精度乘積組成的函數表達式,得到最優逼近算子。與Marr的LOG邊緣檢測類似,Canny也屬于先平滑后求導的方法。圖像增強的點運算程序如下:*獲取圖像
read_image(Image,'fabrik')*使用canny算法進行邊緣提取edges_image(Image,ImaAmp,ImaDir,'lanser2',0.5,'nms',12,22)*閾值分割
threshold(ImaAmp,Edges,1,255)*骨骼化skeleton(Edges,Skeleton)*將骨骼化的區域轉化為XLDgen_contours_skeleton_xld(Skeleton,Contours,1,'filter')*顯示圖像
dev_display(Image)*設置6種輸出顏色
dev_set_colored(6)*顯示XLD
dev_display(Contours)
5.2.1區域生長法實例(a)原圖(c)骨骼化程序執行結果如圖所示:(d)邊緣輪廓顯示Canny邊緣提取分割實例(b)Canny邊緣提取一般描述圖像的最基本的單位是像素,相機的分辨率也是以像素數量來計算的,像素越高,分辨率越大,圖像越清晰。點與點之間的最小距離就是一個像素的寬度,但實際工程中可能會需要比一個像素寬度更小的精度,因此就有了亞像素級精度的概念,用于提高分辨率。Halcon中用XLD(eXtendedLineDescriptions)表示亞像素的輪廓和多邊形。提取亞像素邊緣常用的算子如下所示:edges_sub_pix(Image:Edges:Filter,Alpha,Low,High:)關于邊緣提取還要注意一點,當振幅大于低閾值、又小于高閾值的時候,判斷此邊緣點是否與已知邊緣點相連,相連則認為該點是邊緣點,否則不是邊緣點。亞像素級別的邊緣提取
程序如下:*關閉窗口
dev_close_window()*讀取圖像
read_image(Image,'fabrik')*打開適應圖像大小的窗口
dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)*對圖像進行亞像素區域提取
edges_sub_pix(Image,Edges,'canny',2,12,22)*放大圖像用于詳細的邊緣檢查dev_set_part(160,250,210,300)dev_display(Image)dev_display(Edges)程序執行結果如圖所示:(a)原圖
(b)邊緣提取圖亞像素級別的邊緣提取實例(c)局部邊緣檢查圖Hough變換第四部分Hough變換
理想情況下,前面討論的方法應該只產生邊緣上的像素。在實際中由于噪聲和光照不均等因素,使得在很多情況下所獲得的邊緣點是不連續的。因此,典型的邊緣檢測算法遵循用鏈接過程把像素組裝成有意義的邊緣的方法。一種尋找并鏈接圖像中線段的處理方式是Hough變換。在圖像
坐標空間中,經過
的直線有無數條,這些線對某些a值和b值來說,均滿足
如果將
和
視為常數,而將原本的參數a和b視為變量,這樣可對固定點
產生單獨的一條,直線可表示為
就變換到了參數平面a-b。考慮圖像坐標空間的另一點
,它在參數空間中也有相應的一條直線,表示為
這條直線與點在參數空間的直線相交于一點,如圖所示:直角坐標參數空間直角坐標參數空間的實際困難是a(直線的斜率)接近無限大,也就是接近垂直方向。解決該困難的一種方法是使用直線的標準表達式,即:
極坐標參數空間.Hough變換同樣適用于方程已知的曲線檢測。圖像坐標空間的一條已知的曲線方程也可以建立其相應的參數空間。由此,圖像坐標空間中的一點,在參數空間中就可以映射為相應的軌跡曲線或者曲面。例如對于已知的圓方程,其直角坐標的一般方程為
Hough變換可以檢測某一任意形狀邊界的圖形并且抗噪聲能力強,能夠在信噪比較低的條件下檢測出直線或解析曲線。不過在進行變換前需要做二值化以及邊緣檢測等圖像預處理工作,會損失掉原始圖像中的許多信息。曲線檢測Hough變換圖像分割實例
程序如下:*讀取圖像
read_image(Image,'fabrik')*獲得目標區域圖像
rectangle1_domain(Image,ImageReduced,170,280,310,360)*用Sobel邊緣檢測算子提取邊緣
sobel_dir(ImageReduced,EdgeAmplitude,EdgeDirection,'sum_abs',3)*設置輸出顏色為紅色
dev_set_color('red')*閾值分割得到圖像
threshold(EdgeAmplitude,Region,55,255)*截取圖像
reduce_domain(EdgeDirection,Region,EdgeDirectionReduced)*進行Hough變換
hough_lines_dir(EdgeDirectionReduced,HoughImage,Lines,4,2,'mean',3,25,5,5,'true',Angle,Dist)*將霍夫變換提取直線以普通形式描述的輸入行存儲為區域
gen_region_hline(LinesHNF,Angle,Dist)*顯示圖像
dev_display(Image)*設置輸出顏色數目
dev_set_colored(12)*設置輸出填充方式為“輪廓”
dev_set_draw('margin')*顯示LinesHNF
dev_display(LinesHNF)*設置輸出填充方式為“填充”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稅務師網盤課件百度云
- 2025年 福建省大數據集團有限公司招聘考試筆試試題附答案
- 中國雙缸洗衣機塑件行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 農業機械生產線項目人力資源管理分析報告
- 2025-2030年中國鹽酥雞行業深度研究分析報告
- 2024-2030年中國遼寧省農村城鎮化建設行業市場發展監測及投資潛力預測報告
- 2024-2030年中國塞棒行業市場深度分析及發展潛力預測報告
- 2025年中國交互電子白板行業發展監測及投資戰略規劃報告
- 2025年中國晶閘管整流器行業市場全景調研及投資規劃建議報告
- 2025年中國電子元器件配件市場深度分析及行業前景展望報告
- 現場7S管理培訓
- 液氨安全管理及應急處置
- 2025年中考山西考試試題及答案
- 2025年湖南省長沙市岳麓區博才小學五下數學期末學業質量監測試題含答案
- 生產車間5S培訓教材
- 課題申報書:AI賦能高校輔導員能力提升的路徑研究
- 【MOOC期末】《中國哲學》(北京師范大學) 期末中國大學慕課答案
- 整本書閱讀:《鄉土中國》(考教銜接講義)-2025年高考語文一輪復習(新教材新高考)
- 護理新技術項目匯報
- DL T596《電力設備預防性實驗規程》知識培訓
- DB11T 594.1-2017 地下管線非開挖鋪設工程施工及驗收技術規程 第1部分:水平定向鉆施工
評論
0/150
提交評論