《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》課件 項目7 形態(tài)學處理_第1頁
《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》課件 項目7 形態(tài)學處理_第2頁
《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》課件 項目7 形態(tài)學處理_第3頁
《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》課件 項目7 形態(tài)學處理_第4頁
《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》課件 項目7 形態(tài)學處理_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

機器視覺系統(tǒng)編程與開發(fā)<Halcon版>《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》項目7形態(tài)學處理【知識目標】1.熟悉數(shù)學形態(tài)學的基本概念;2.掌握腐蝕、膨脹處理圖像的原理;3.掌握用開、閉運算處理圖像的原理【能力目標】1.會使用腐蝕、膨脹處理圖像;2.會使用開、閉運算處理圖像。1.利用網(wǎng)絡(luò)資源搜集資料能力;2.制定職業(yè)養(yǎng)成計劃,按照企業(yè)的工作模式開展學習?!舅仞B(yǎng)目標】項目導(dǎo)讀

數(shù)學形態(tài)學(Mathematicalmorphology)是一門建立在格論和拓撲學基礎(chǔ)之上的圖像分析學科,是數(shù)學形態(tài)學圖像處理的基本理論。其基本的運算包括:二值腐蝕和膨脹、二值開運算和閉運算、擊中擊不中變換、形態(tài)學梯度等。形態(tài)學是圖像處理中應(yīng)用最為廣泛的技術(shù)之一,主要用于從圖像中提取對表達和描繪區(qū)域形狀有意義的圖像分量,使后續(xù)的識別工作能夠抓住目標對象最為本質(zhì)的形狀特征,如邊界和連通區(qū)域等。同時像細化、像素化和修剪毛刺等技術(shù)也常應(yīng)用于圖像的預(yù)處理和后處理中,成為圖像增強技術(shù)的有力補充。形態(tài)學的基本思想是利用一種特殊的結(jié)構(gòu)元素去探索圖像中對應(yīng)的形狀,以達到對測量或提取輸入圖像中相應(yīng)的形狀或特征進行分析和識別的目的。即按照集合運算“交”和“并”的規(guī)則,將結(jié)構(gòu)元素填放到圖像中,對圖像進行處理的方法。結(jié)構(gòu)元素形狀的構(gòu)造將直接影響圖像分析處理的結(jié)果。根計顆粒數(shù)量威化餅外觀質(zhì)量檢測任務(wù)2任務(wù)1統(tǒng)計顆粒數(shù)量任務(wù)12課時【任務(wù)要求】

顆粒圖像如圖所示,利用形態(tài)學處理統(tǒng)計顆粒數(shù)量【知識鏈接】

在經(jīng)閾值處理提取出目標區(qū)域的二值圖像之后,區(qū)域邊緣可能并不理想,這時可以使用腐蝕或膨脹操作對區(qū)域進行“收縮”或“擴張”。腐蝕和膨脹是兩種最基本也是最重要的形態(tài)學運算,它們是很多高級形態(tài)學處理的基礎(chǔ),很多形態(tài)學算法都是由這兩種基本運算復(fù)合而成。1、結(jié)構(gòu)元素

結(jié)構(gòu)元素在算子參數(shù)中的名稱為StructElement,在腐蝕與膨脹操作中都需要用到。結(jié)構(gòu)元素是類似于“濾波核”的元素,或者說類似于一個“小窗”,在原圖上進行從上向下,從左向右“滑動”,求結(jié)構(gòu)元素與原圖的交集,結(jié)構(gòu)元素可以指定形狀和大小,其原點相當于“小窗”的中心,其尺寸大小在進行腐蝕或者膨脹處理時根據(jù)需要設(shè)定,結(jié)構(gòu)元素的尺寸也決定著腐蝕或者膨脹的程度。結(jié)構(gòu)元素越大,被腐蝕消失或者被膨脹增加的區(qū)域也會越大。結(jié)構(gòu)元素的形狀可以根據(jù)操作的需求進行創(chuàng)建,可以是圓形、矩形、橢圓形,甚至是指定的多邊形等??梢酝ㄟ^gen_circle、gen_rectanglel,gen_ellipse,gen_region_polygon等算子創(chuàng)建需要的形狀并設(shè)定尺寸,一般在腐蝕或者膨脹算子中直接設(shè)定。2.腐蝕

腐蝕操作是對所選區(qū)域進行“收縮”的一種操作,可以用于消除邊緣和雜點。腐蝕區(qū)域的大小與結(jié)構(gòu)元素的大小和形狀相關(guān)。其原理是使用一個自定義的結(jié)構(gòu)元素,如矩形、圓形等,在二值圖像上進行類似于“濾波”的滑動操作,然后將二值圖像對應(yīng)的像素點與結(jié)構(gòu)元素的像素進行對比,得到的交集即為腐蝕后的圖像像素。經(jīng)過腐蝕操作,圖像區(qū)域的邊緣可能會變得平滑,區(qū)域的像素將會減少,相連的部分可能會斷開,但各部分仍然屬于同一個區(qū)域。常用的腐蝕算子有:erosion_circle算子和erosion_rectangle1算子。算子釋義:erosion_rectangle1—Erodearegionwitharectangularstructuringelement.格式:erosion_rectangle1(Region:RegionErosion:Width,Height:

)參數(shù):Region

--輸入?yún)^(qū)域;RegionErosion--腐蝕后的結(jié)果;Width,Height

--矩形結(jié)構(gòu)元素的尺寸。作用:用長為Width,寬為Height的矩形結(jié)構(gòu)元素對區(qū)域Region進行腐蝕處理。例:erosion_rectangle1(Region,RegionErosion,35,35)表示:用35×35的矩形對區(qū)域Region進行腐蝕操作,處理結(jié)果放在變量RegionErosion中。算子釋義:erosion_circle—Erodearegionwithacircularstructuringelement.格式:erosion_circle(Region:RegionErosion:Radius:

)參數(shù):Region--輸入?yún)^(qū)域;RegionErosion--腐蝕后的結(jié)果;Radius--圓形結(jié)構(gòu)元素的半徑,一般為奇數(shù)。作用:用半徑為Radius的圓形結(jié)構(gòu)元素對區(qū)域Region進行腐蝕處理。例:erosion_circle(Region,RegionErosion,23)表示:用半徑為23的圓形結(jié)構(gòu)算子對區(qū)域Region進行腐蝕操作,處理結(jié)果放在變量RegionErosion中。3.膨脹

與腐蝕相反,膨脹是對選區(qū)進行“擴大”的一種操作。其原理是使用一個自定義的結(jié)構(gòu)元素,在待處理的圖像上進行類似于“濾波”的滑動操作,然后將二值圖像對應(yīng)的像素點與結(jié)構(gòu)元素的像素進行對比,得到的并集為膨脹后的圖像像素。經(jīng)過膨脹操作,圖像區(qū)域的邊緣可能會變得平滑,區(qū)域的像素將會增加,不相連的部分可能會連接起來,這些都與腐蝕操作正好相反。即使如此,原本不相連的區(qū)域仍然屬于各自的區(qū)域,不會因為像素重疊就發(fā)生合并。Halcon軟件中有許多與膨脹操作相關(guān)的算子,比較常用的有dilation_circle算子和dilation_rectanglel算子,它們分別使用圓形與矩形結(jié)構(gòu)元素對輸入?yún)^(qū)域進行膨脹操作。算子釋義:dilation_rectangle1—Openaregionwitharectangularstructuringelement.格式:dilation_rectangle1(Region

:

RegionDilation

:

Width,

Height

:)參數(shù):Region

--輸入?yún)^(qū)域;RegionDilation

--膨脹后的結(jié)果;Width,

Height--矩形結(jié)構(gòu)元素的長和寬。作用:用長為Width,寬為Height的矩形結(jié)構(gòu)元素對區(qū)域Region進行膨脹處理。例:dilation_rectangle1(Region,RegionDilation,11,11)表示:對圖像變量Region中的區(qū)域進行膨脹操作,結(jié)構(gòu)元素為矩形,長為11,寬為11,膨脹后的區(qū)域放入圖像變量RegionDilation中。算子釋義:dilation_circle—Dilatearegionwithacircularstructuringelement.格式:dilation_circle(Region:RegionDilation

:Radius:)參數(shù):Region

--輸入?yún)^(qū)域;RegionDilation

--開運算后的結(jié)果;Radius--圓形結(jié)構(gòu)元素的半徑,一般為奇數(shù)。作用:用半徑為Radius的圓形結(jié)構(gòu)元素對區(qū)域Region進行膨脹處理。例:dilation_circle(Region,RegionDilation,3.5)表示:對圖像變量Region中的區(qū)域進行膨脹操作,結(jié)構(gòu)元素為圓形,半徑為3.5,膨脹后的區(qū)域放入圖像變量RegionDilation中?!救蝿?wù)實施】1.讀取圖像并初始化*

讀取圖像read_image

(Image,

'pellets')

*關(guān)閉窗口

dev_close_window

()

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*打開新窗口,與圖像尺寸一致

dev_open_window

(0,

0,

Width,

Height,

'black',

WindowID)

*設(shè)定顯示字體

set_display_font

(WindowID,

16,

'mono',

'true',

'false')

*設(shè)定顯示顏色

dev_set_colored

(6)

*設(shè)定顯示模式

dev_set_draw

('margin')

*設(shè)定顯示線寬

dev_set_line_width

(3)

*顯示圖像,如圖7-2所示dev_display

(Image)

stop

()

2.圖像處理*

二值化閾值分割,如圖7-3所示binary_threshold

(Image,

LightRegion,

'max_separability',

'light',

UsedThreshold)

*腐蝕處理,選擇合適的結(jié)構(gòu)圓半徑,使各個顆粒分離,便于統(tǒng)計數(shù)量,如圖7-4所示erosion_circle

(LightRegion,

RegionErosion,

7.5)

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

(RegionErosion,

ConnectedRegions)

*計算顆粒區(qū)域數(shù)量

count_obj

(ConnectedRegions,

Number)

*

膨脹處理,選擇與腐蝕一樣的半徑,便于顯示顆粒形狀,如圖7-6所示

dilation_circle

(ConnectedRegions,

RegionDilation,

7.5)

3.顯示結(jié)果*顯示原圖

dev_display

(Image)

*顯示顆粒區(qū)域

dev_display

(RegionDilation)

*顯示統(tǒng)計結(jié)果,如圖7-7所示disp_message

(WindowID,

'共有

'+Number

+

個顆粒',

'window',

12,

220,

'black',

'true')

下一任務(wù)介紹:威化餅外觀質(zhì)量檢測。威化餅外觀質(zhì)量檢測任務(wù)22課時【任務(wù)要求】一組威化餅圖像如圖所示,利用形態(tài)學處理檢測每張威化餅外觀質(zhì)量?!局R鏈接】

腐蝕與膨脹是形態(tài)學運算的基礎(chǔ),在實際檢測的過程中,常常需要組合運用腐蝕與膨脹對圖像進行處理。開運算與閉運算組合使用這兩種操作,在保留圖像主體部分的同時,處理圖像中出現(xiàn)的各種雜點、空洞、小的間隙、毛糙的邊緣等。合理地運用開運算與閉運算,能簡化操作步驟,有效地優(yōu)化目標區(qū)域,使提取出的范圍更為理想。1.開運算

開運算的計算步驟是先腐蝕,后膨脹。通過腐蝕運算能去除小的非關(guān)健

區(qū)域,也可以把離得很近的元素分隔開,再通過膨脹填補過度腐蝕留下的空隙。算子釋義:opening_rectangle1—Openaregionwitharectangularstructuringelement.格式:opening_rectangle1(Region:Regionopeningn:Width,Height:

)參數(shù):Region

--輸入?yún)^(qū)域;Regionopening--腐蝕后的結(jié)果;Width,Height

--矩形結(jié)構(gòu)元素的尺寸。作用:用長為Width,寬為Height的矩形結(jié)構(gòu)元素對區(qū)域Region進行開運算處理。例:opening_rectangle1(Region,RegionOpening,10,10)表示:用10×10的矩形對區(qū)域Region進行開運算操作,處理結(jié)果放在變量RegionOpening中。算子釋義:opening_circle—Openaregionwithacircularstructuringelement.格式:opening_circle(Region:Regionopening:Radius:)參數(shù):Region

--輸入?yún)^(qū)域;Regionopening--腐蝕后的結(jié)果;Radius--圓形結(jié)構(gòu)元素的半徑,一般為奇數(shù)。作用:用半徑為Radius的圓形結(jié)構(gòu)元素對區(qū)域Region進行腐蝕處理。例:opening_circle(Region,RegionOpening,23)表示:用半徑為23的圓形對圖像變量Region中的區(qū)域進行開運算操作,處理結(jié)果放在圖像變量RegionOpening中。2、閉運算閉運算的計算步驟與開運算正好相反,為先膨脹,后腐蝕。這兩步操作能將看起來很接近的元素,如區(qū)域內(nèi)部的空洞或外部孤立的點連接成一體,區(qū)域的外觀和面積也不會有明顯的改變。算子釋義:closing_rectangle1—Closearegionwitharectangularstructuringelement.格式:closing_rectangle1(Region:Regionlosing:Width,Height:)參數(shù):Region--輸入?yún)^(qū)域;Regionlosing--閉運算后的結(jié)果;Width,Height--矩形結(jié)構(gòu)元素的尺寸。作用:用長為Width,寬為Height的矩形結(jié)構(gòu)元素對區(qū)域Region進行閉運算處理。例:closing_rectangle1(Region,Regionlosing,35,35)表示:用35×35的矩形對圖像變量Region中區(qū)域進行閉運算操作,處理結(jié)果放在圖像變量Regionlosing中。

算子釋義:closing_circle—Closearegionwithacircularstructuringelement.格式:opening_circle(Region:Regionlosing:Radius:

)參數(shù):Region

--輸入?yún)^(qū)域;Regionlosing--閉運算后的結(jié)果;Radius--圓形結(jié)構(gòu)元素的半徑,一般為奇數(shù)。作用:用半徑為Radius的圓形結(jié)構(gòu)元素對區(qū)域Region進行閉運算處理。例:closing_circle(Region,Regionlosing,23)表示:用半徑為23的圓形對圖像變量Region中的區(qū)域進行閉運算操作,處理結(jié)果放在圖像變量Regionlosing中?!救蝿?wù)實施】

1.讀取圖像并初始化*讀取圖像,目的是獲取圖像大小和創(chuàng)建窗口句柄read_image

(Image,

'hazelnut_wafer_01')

*關(guān)閉窗口

dev_close_window

()

*獲取圖像尺寸

get_image_size

(Image,

Width,

Height)

*打開新窗口,尺寸和圖像一致

dev_open_window_fit_image

(Image,

0,

0,

-1,

-1,

WindowHandle)

*設(shè)置線寬

dev_set_line_width

(3)

*設(shè)置顯示模式

dev_set_draw

('margin')

*設(shè)置字體

set_display_font

(WindowHandle,

20,

'mono',

'true',

'false')

2.循環(huán)讀取圖像并進行圖像處理*

循環(huán)讀取圖像,一張一張檢測,第一張圖像如圖7-9所示

*for

Index

:=

1

to

24

by

1

讀取默認目錄下,以hazelnut_wafer_開頭的圖像文件名,后續(xù)加上兩位數(shù)

*Index$'.02'表示Index為兩位數(shù),如,當Index=1時,用01表示。

read_image

(Image,

'hazelnut_wafer_'

+

Index$'.02')

*二值化閾值分割,如圖7-10所示

binary_threshold

(Image,

Foreground,

'smooth_histo',

'light',

UsedThreshold)

*開運算,如圖7-11所示

opening_circle

(Foreground,

FinalRegion,

8.5)

*計算孔區(qū)域面積

area_holes

(FinalRegion,

AreaHoles)

*計算區(qū)域的矩形度

rectangularity

(FinalRegion,

Rectangularit

溫馨提示

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

評論

0/150

提交評論