《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目5 圖像分割_第1頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目5 圖像分割_第2頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目5 圖像分割_第3頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目5 圖像分割_第4頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目5 圖像分割_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

機(jī)器視覺(jué)系統(tǒng)編程與開(kāi)發(fā)<Halcon版>項(xiàng)目5圖像分割【知識(shí)目標(biāo)】1、理解圖像分割的概念的作用;2、了解幾種圖像分割的方法和應(yīng)用場(chǎng)合;3、會(huì)用普通閾值分割圖像。1、學(xué)會(huì)使用灰度直方圖工具進(jìn)行閾值分割;2、掌握閾值分割算子參數(shù)的選擇。1、養(yǎng)成刻苦鉆研的習(xí)慣;2、提升創(chuàng)新能力。【能力目標(biāo)】【素養(yǎng)目標(biāo)】項(xiàng)目導(dǎo)讀

在圖像處理時(shí),有時(shí)候圖像非常大,甚至以KB,GB為單位,包含的信息量很多,而需要關(guān)注的信息只是其中部分區(qū)域,這時(shí)候就需要一個(gè)工具,能夠把所感興趣的區(qū)域從圖像中分離出來(lái),這種基于“區(qū)域”分割技術(shù)就叫“圖像分割”,它是由圖像處理到圖像分析的關(guān)鍵步驟,現(xiàn)有的圖像分割方法主要分以下幾類(lèi):基于閾值的分割方法、基于區(qū)域的分割方法、分水嶺算法的分割方法以及基于特定理論的分割方法等。1、掌握?qǐng)D像分割的概念;2、掌握幾種常用的圖像分割方法。利用自動(dòng)閾值提取零件已加工表面利用局部閾值對(duì)機(jī)器點(diǎn)字符進(jìn)行識(shí)別利用局部閾值分割手寫(xiě)字符任務(wù)3任務(wù)4任務(wù)2利用區(qū)域生長(zhǎng)法分割輪轂并測(cè)量小孔尺寸利用全閾值分割車(chē)牌字符任務(wù)1任務(wù)5利用分水嶺算法分割顆粒狀物體任務(wù)6利用全閾值分割車(chē)牌字符任務(wù)1【任務(wù)要求】

利用全閾值分割獲取圖5-1車(chē)牌字符

【知識(shí)鏈接】

1、算子threshold

—Segmentanimageusingglobalthreshold.格式:threshold(Image

:

Region

:

MinGray,

MaxGray

:)參數(shù):Image--輸入圖像;Region--分割后的區(qū)域;Mingray--最小灰度值;MaxGray--最大灰度值。作用:對(duì)圖像進(jìn)行全值閾值分割。例:threshold(Image,Region,128,255)表示:對(duì)圖像變量Image中的圖像進(jìn)行閾值分割,保留像素值在[128,255]之間的像素點(diǎn)形成新的區(qū)域,存放在圖像變量Region中。2、任務(wù)實(shí)施*讀取圖像read_image

(Audi2,

'audi2')

*獲取圖像尺寸get_image_size(Audi2,Width,Height)dev_close_window()*新建一個(gè)窗口dev_open_window(0,0,Width/2,Height/2,'black',WindowHandle)*顯示圖像,如圖所示dev_display(Audi2)讀取圖像并初始化對(duì)圖像進(jìn)行閾值分割10. *全閾值分割圖像,灰度值在0-90之間,利用灰度直方圖工具,效果如圖所示11. threshold(Audi2,Region,0,90)12. *連通域處理,打斷成不連續(xù)的單個(gè)小區(qū)域,每個(gè)小區(qū)域稱為特征,效果圖所示13. connection(Region,ConnectedRegions)特征選擇14. *特征選擇“width”30-70范圍內(nèi)的特征,放入SelectedRegions變量中15. select_shape(ConnectedRegions,SelectedRegions,'width','and',30,70)16. *特征選擇'height'60-110范圍內(nèi)的特征,放入Letters變量中17. select_shape(SelectedRegions,Letters,'height','and',60,110)顯示結(jié)果19. *清屏,重新顯示結(jié)果,結(jié)果如圖所示20. dev_clear_window()21. dev_display(Audi2)22. dev_display(Letters)下一任務(wù)介紹:自動(dòng)閾值圖像。利用自動(dòng)閾值提取零件已加工表面任務(wù)2【任務(wù)要求】自動(dòng)閾值分割獲取零件已加工表面。【知識(shí)鏈接】全閾值分割僅在目標(biāo)對(duì)象和背景的灰度值有明顯區(qū)分度時(shí)效果較好,手動(dòng)設(shè)定閾值不夠嚴(yán)謹(jǐn),人眼對(duì)灰度值的變化并不十分敏感,隨著后續(xù)計(jì)算的增加,將帶來(lái)不可預(yù)知的誤差,特別是在處理連續(xù)圖像時(shí),圖像的灰度值是變化的,固定的閾值更容易造成誤差,因此,可以采用自動(dòng)閾值分割的方法,自動(dòng)閾值分割法以圖像的灰度直方圖為依據(jù),綜合考慮了像素鄰域以及圖像整體灰度分布等特征關(guān)系,以經(jīng)過(guò)灰度分類(lèi)的像素類(lèi)群之間產(chǎn)生最大方差時(shí)候的灰度值作為圖像的整體分割閾值。常用的有auto_threshold和binary_threshold算子。1、算子auto_threshold

—Segmentanimageusingthresholdsdeterminedfromitshistogram.格式:auto_threshold(Image

:

Regions

:

Sigma

:

)參數(shù):Image--輸入圖像;Region--分割后的區(qū)域;Sigma--對(duì)灰度直方圖高斯平滑系數(shù)。作用:使用直方圖對(duì)圖像進(jìn)行全值閾值分割。例:auto_threshold(Image,Regions,2)表示:對(duì)圖像變量Image中的圖像進(jìn)行多個(gè)區(qū)域的分割,高斯平滑系數(shù)為“2”,分割后的結(jié)果存放到圖像變量Regions中。binary_threshold

Segmentanimageusingbinarythresholding.格式:binary_threshold(Image:Region:Method,LightDark:UsedThreshold)參數(shù):Image--輸入圖像;Region--分割后的區(qū)域;Method--max_separability(可分性),smoothhisto(光滑的histogram直方圖,柱狀圖);Lightdark--選擇白色“l(fā)ight”或者黑色“dark”;Usedthreshold--使用的閾值。作用:對(duì)圖像進(jìn)行全值閾值分割。例:binary_threshold(Image,Region,'max_separability','dark',UsedThreshold)表示:對(duì)圖像變量Image中的圖像進(jìn)行全閾值分割,選擇“黑色”,分割后的區(qū)域放入圖像變量Region中。2、任務(wù)實(shí)施1.讀取圖像并初始化*讀取圖像

read_image

(Image,

'pumpe.png')

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*關(guān)閉當(dāng)前窗口

dev_close_window

()

*打開(kāi)一個(gè)和圖像大小一致的窗口

dev_open_window

(0,

0,

Width,

Height,

'black',

WindowHandle)

*顯示圖像,如圖5-10所示dev_display

(Image)

動(dòng)態(tài)閾值分割11. *因?yàn)榻饘俦砻嫦袼刂当容^接近,所以需進(jìn)行圖像增強(qiáng),如圖5-11所示12. emphasize(ImageScaleMax,ImageEmphasize,28,28,2)13. *動(dòng)態(tài)閾值分割,因?yàn)榛叶戎狈綀D不呈二值化分布,人工分割確定閾值困難,所以采用動(dòng)態(tài)分割,如圖5-12所示14. binary_threshold(ImageEmphasize,Region,'max_separability','light',UsedThreshold)15. *連通域處理,如圖5-13所示16. connection(Region,ConnectedRegions)17. *閉運(yùn)算,如圖5-14所示18. closing_circle(ConnectedRegions,RegionClosing,25.5)特征選擇*特征選擇,如圖5-15所示select_shape

(RegionClosing,

SelectedRegions,

'area',

'and',

48396.3,

100000)

*區(qū)域裁剪

reduce_domain

(ImageEmphasize,

SelectedRegions,

ImageReduced)

4.顯示結(jié)果*清屏

dev_clear_window

()

*顯示提取區(qū)域,如圖5-16所示dev_display

(ImageReduced)

下一任務(wù)介紹:局部閾值分割圖像。利用局部閾值分割手寫(xiě)字符任務(wù)32課時(shí)【任務(wù)要求】利用局部閾值分割字符【知識(shí)鏈接】

受光線等環(huán)境的影響,有時(shí)候圖像的背景較復(fù)雜,前景和背景的灰度值呈交錯(cuò)式,無(wú)法用單一灰度進(jìn)行分割,這時(shí)候可以采用局部閾值分割進(jìn)行處理,局部閾值分割也稱為動(dòng)態(tài)閾值分割,其算子為:dyn_threshold。

1、算子dyn_threshold

—Segmentanimageusingalocalthreshold.格式:dyn_threshold(OrigImage,ThresholdImage:RegionDynThresh:Offset,LightDark:)參數(shù):OrigImage--原圖像;ThresholdImage--濾波后圖像(參考圖),可以通過(guò)mean_image,binomial_filter,gauss_filter等濾波方式處理;RegionDynThresh--分割后區(qū)域;Offset--灰度差值,默認(rèn)值5,鄰域比較的區(qū)間范圍,灰度值變化在offset范圍內(nèi)均是可以接受的,參數(shù)Offset不要設(shè)置0,否則將會(huì)提取到很多小的噪點(diǎn)區(qū)域,一般介于5-40最佳,其值越大,提取的區(qū)域越小;LightDark--“l(fā)ight”提取相對(duì)參考圖更亮的區(qū)域,“dark”提取相對(duì)參考圖更暗的區(qū)域,“equal”選取和參考圖差不多的區(qū)域,“not_equal”不同區(qū)域。作用:使用局部閾值分割圖像進(jìn)行閾值分割。例:dyn_threshold(Image,ImageMedian,RegionDynThresh,5,'light')表示:對(duì)圖像變量Image中的圖像進(jìn)行具備閾值分割,根據(jù)ImageMedian中的濾波圖像,分割后的區(qū)域放入RegionDynThresh,灰度變化范圍為“5”,選擇亮的區(qū)域。提示:在進(jìn)行dyn_threshold分割之前要先進(jìn)行濾波處理。1.讀取圖像并初始化*讀取圖像

read_image

(Image,

'alpha.tif')

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*關(guān)閉窗口

dev_close_window

()

*打開(kāi)一個(gè)新的窗口和原圖一樣大小

dev_open_window

(0,

0,

Width,

Height,

'black',

WindowHandle)

*顯示圖像,如圖5-18所示dev_display

(Image)

2、任務(wù)實(shí)施1.濾波后進(jìn)行局部閾值分割11. *均值濾波,如圖5-19所示mean_image(Image,ImageMean,21,21)*局部閾值分割,選擇黑色“dark”,如圖5-20所示dyn_threshold(Image,ImageMean,Region,15,'dark')2、任務(wù)實(shí)施特征選擇15. *閉運(yùn)算,消除細(xì)小斑點(diǎn),如圖5-21所示16. closing_circle(Region,RegionClosing,4.5)17. *連通域處理,打斷成單個(gè)小區(qū)域18. connection(RegionClosing,ConnectedRegions)19. *區(qū)域選擇,如圖5-22所示20. select_shape(ConnectedRegions,SelectedRegions,'area','and',80,1000)4.利用交集法求字符21. *求選擇的區(qū)域SelectedRegions與閾值分割區(qū)域Region的交集22. intersection(SelectedRegions,Region,RegionIntersection)5.顯示結(jié)果23. *顯示原圖24. dev_display(Image)25. *顯示最終效果,如圖5-23所示26. dev_display(RegionIntersection)下一任務(wù)介紹:局部閾值分割圖像。利用局部閾值對(duì)機(jī)器點(diǎn)字符進(jìn)行識(shí)別任務(wù)4【任務(wù)要求】利用局部閾值分割將字符提取出來(lái)【任務(wù)實(shí)施】讀取圖像并初始化*讀取圖像

read_image

(Image,

'number.png')

get_image_size

(Image,

Width,

Height)

dev_close_window

()

dev_open_window

(0,

0,

Width,

Height,

'black',

WindowHandle)*顯示圖像,如圖5-25所示dev_display

(Image)

局部閾值分割

*均值濾波,在局部閾值分割之前,需對(duì)圖像進(jìn)行濾波處理mean_image

(Image,

ImageMean,

11,

11)

*局部閾值分割,如圖5-26所示dyn_threshold

(Image,

ImageMean,

RegionDynThresh,

7,

'dark')

*連通域處理,打斷操作,如圖5-27所示connection

(RegionDynThresh,

ConnectedRegions)

特征選擇*選擇區(qū)域,如圖5-28所示select_shape

(ConnectedRegions,

SelectedRegions,

['area','row'],

'and',

[50,190],

[500,480])

*將字符聯(lián)合成一個(gè)區(qū)域

union1

(SelectedRegions,

RegionUnion)

*對(duì)字符進(jìn)行閉運(yùn)算

closing_circle

(RegionUnion,

RegionClosing,

3.5)

closing_rectangle1

(RegionClosing,

RegionClosing1,

5,7)

*轉(zhuǎn)為二值化圖像,如圖5-29所示region_to_bin

(RegionClosing1,

BinImage,

255,

0,

Width,

Height)

字符識(shí)別*創(chuàng)建字符識(shí)別模型

create_text_model_reader

('auto',

'Document_0-9A-Z_Rej.omc',

TextModel)

*可修改待測(cè)試字符參數(shù)信息,包括寬度、角度、行數(shù)、筆畫(huà)寬度等等

find_text

(BinImage,

TextModel,

TextResultID)

*獲取字符對(duì)象

get_text_object

(Characters,

TextResultID,

'all_lines')

*識(shí)別字符結(jié)果

get_text_result(TextResultID,

'class',

ResultValue)

*獲取字符的中心坐標(biāo)

area_center

(Characters,

Area,

Row,

Column)

輸出顯示結(jié)果*在字符中心下方40顯示識(shí)別結(jié)果,如圖5-30所示dev_disp_text

(ResultValue,

'image',

Row+40,

Column,

'blue',

[],

[])下一任務(wù)介紹:了解區(qū)域生長(zhǎng)法分割圖像。利用區(qū)域生長(zhǎng)法分割輪轂并測(cè)量小孔尺寸任務(wù)5【任務(wù)要求】利用區(qū)域生長(zhǎng)法測(cè)量輪轂中孔的尺寸?!局R(shí)鏈接】區(qū)域生長(zhǎng)法分割法是一種古老的圖像分割方法,最早的區(qū)域生長(zhǎng)圖像分割方法是由Levine等人提出的。該方法一般有兩種方式,一種是先給定圖像中要分割的目標(biāo)物體內(nèi)的一個(gè)小塊或者說(shuō)種子區(qū)域(seedpoint),再在種子區(qū)域基礎(chǔ)上不斷將其周?chē)南袼攸c(diǎn)以一定的規(guī)則加入其中,達(dá)到最終將代表該物體的所有像素點(diǎn)結(jié)合成一個(gè)區(qū)域的目的;另一種是先將圖像分割成很多的一致性較強(qiáng),如區(qū)域內(nèi)像素灰度值相同的小區(qū)域,再按一定的規(guī)則將小區(qū)域融合成大區(qū)域,達(dá)到分割圖像的目的。Halcon軟件中區(qū)域生長(zhǎng)的算子為regiongrowing。regiongrowing—Segmentanimageusingregiongrowing.格式:regiongrowing(Image:Regions:RasterHeight,RasterWidth,Tolerance,MinSize:

)參數(shù):Image--輸入圖像;Regions--分割后的輸出區(qū)域;RasterHeight、RasterWidth--在圖像內(nèi)相鄰移動(dòng)模板的長(zhǎng)和寬度大小,一般為奇數(shù);Tolerance--兩個(gè)相鄰模板中心灰度值差,如果小于這個(gè)值就合并為同一區(qū)域;MinSize--作為一個(gè)限制,限定了用上面方法分割出的區(qū)域面積最終不能小于MinSize給定的值,否則不作為區(qū)域輸出。作用:區(qū)域增長(zhǎng)法分割圖像為區(qū)域。例:regiongrowing(Image,Regions,13,13,6,100)表示:對(duì)圖像變量Image中的圖形進(jìn)行區(qū)域增長(zhǎng)分割,模板的大小為13×13,中心灰度差為“6”,分割區(qū)域的面積不小于100?!救蝿?wù)實(shí)施】1.讀取圖像并初始化*讀取圖像

read_image

(Image,

'rim.png')

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*關(guān)閉窗口

dev_close_window

()

*打開(kāi)新窗口,為圖像大小的一半

dev_open_window

(0,

0,

Width/2,

Height/2,

'black',

WindowHandle)

*顯示圖像,如圖5-32所示dev_display

(Image)

2.濾波后進(jìn)行區(qū)域生長(zhǎng)分割*中值濾波,如圖5-33所示median_rect

(Image,

ImageMedian,

15,

15)

*區(qū)域生長(zhǎng)分割,如圖5-34所示regiongrowing

(ImageMedian,

Regions,

3,

3,

3,

50)

*連通域處理,如圖5-35所示connection

(Regions,

ConnectedRegions)

*填充

fill_up

(ConnectedRegions,

RegionFillUp)

3.特征選擇*閉運(yùn)算

closing_circle

(RegionFillUp,

RegionClosing,200.5)

*特征選擇,如圖5-36所示

select_shape

(RegionClosing,

SelectedRegions,

'area',

'and',

189193,

196686)

4.裁剪,縮小檢測(cè)區(qū)域,并獲取孔的輪廓曲線*裁剪,如圖5-37所示reduce_domain

(ImageMedian,

SelectedRegions,

ImageReduced)

*獲取XLD輪廓,如圖5-38所示edges_sub_pix

(ImageReduced,

Edges,

'canny',

1,

20,

40)

*對(duì)XLD輪廓進(jìn)行分割

segment_contours_xld

(Edges,

ContoursSplit,

'lines_circles',

5,

4,

2)

*共圓擬合曲線

union_collinear_contours_xld

(ContoursSplit,

UnionContours,

10,

1,

2,

0.1,

'attr_keep')

5.對(duì)孔的輪廓曲線進(jìn)行篩選*對(duì)XLD進(jìn)行特征選擇,如圖5-39所示select_shape_xld

(ContoursSplit,

SelectedXLD,

'area',

'and',

1328.35,

5000)

*計(jì)算曲線數(shù)量

count_obj

(SelectedXLD,

Number)

*對(duì)4個(gè)曲線按“row”進(jìn)行排序

sort_contours_xld

(SelectedXLD,

SortedContours,

'upper_left',

'true',

'row')

*顯示原圖

dev_display

(Image)

6.依次檢測(cè)各個(gè)孔的尺寸for

Index

:=

1

to

Number

by

1

*依次選擇曲線,如圖5-40所示

select_obj

(SortedContours,

ObjectSelected,

Index)

*擬合成圓

fit_circle_contour_xld

(ObjectSelected,

'algebraic',

-1,

0,

0,

3,

2,

Row,

Column,

Radius,

StartPhi,

EndPhi,

PointOrder)

*創(chuàng)建圓

gen_circle_contour_xld

(ContCircle,

Row,

Column,

Radius,

0,

6.28318,

'positive',

1)

*根據(jù)圓創(chuàng)建區(qū)域,如圖5-41所示

gen_region_contour_xld

(ContCircle,

Region,

'filled')

7.顯示測(cè)量結(jié)果

*顯示直徑,如圖5-42所示

disp_message

(WindowHandle,

Radius,

'Image',

Row-80,

Column,

'green',

'true')

endfor

下一任務(wù)介紹:利用分水嶺算法分割顆粒狀物體。利用分水嶺算法分割顆粒狀物體任務(wù)6【任務(wù)要求】用分水嶺算法分割顆粒狀物體。。【知識(shí)鏈接】分水嶺算法基本思想是把圖像看作測(cè)地學(xué)上的拓?fù)涞孛?,圖像中的每一點(diǎn)像素的灰度值表示該點(diǎn)的海拔高度,高灰度值代表山脈,低灰度值代表盆地,每一個(gè)局部極小值及其影響區(qū)域稱為積水盆地,積水盆地的邊界形成分水嶺。分水嶺分割算子為watersheds和watersheds_threshold。算子釋義:watersheds_threshold

Extractwatershedbasinsfromanimageusingathreshold.格式:watersheds_threshold(Image

:

Basins

:

Threshold

:

)參數(shù):Image--輸入圖像,如果前景目標(biāo)特征較亮,背景較暗,可以在讀取圖像后使用invert_image算子將圖像進(jìn)行反轉(zhuǎn),即,黑的變亮,亮的變黑;Basins--分割后的輸出區(qū)域;Threshold--分水嶺的閾值。作用:分水嶺分割圖像。例:watersheds_threshold(Image,Basins,10)表示:對(duì)圖像變量Image中的圖像進(jìn)行分水嶺分割,分水嶺的閾值為“10”,分割結(jié)果放入圖像變量Basins中。

【任務(wù)實(shí)施】1.讀取圖像并初始化*讀取圖像

read_image

(Image,

'pellets')

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*設(shè)定顯示模式

dev_set_draw

('margin')

*設(shè)定顏色

dev_set_colored

(12)

*關(guān)閉窗口

dev_close_window

()

*創(chuàng)建新窗口,和圖像大小一致

dev_open_window

(0,

0,

Width,

Height,

'black',

WindowHandle)

*顯示圖像,如圖5-45所示dev_display(Image)2.閾值分割并選擇顆粒特征*閾值分割,如圖5-46所示,可以看出,顆粒有粘連現(xiàn)象threshold

(Image,

Region,

105,

255)

*連通域處理

connection

(Regio

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論