




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
機器視覺系統(tǒng)編程與開發(fā)<Halcon版>《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》項目7形態(tài)學(xué)處理【知識目標】1.熟悉數(shù)學(xué)形態(tài)學(xué)的基本概念;2.掌握腐蝕、膨脹處理圖像的原理;3.掌握用開、閉運算處理圖像的原理【能力目標】1.會使用腐蝕、膨脹處理圖像;2.會使用開、閉運算處理圖像。1.利用網(wǎng)絡(luò)資源搜集資料能力;2.制定職業(yè)養(yǎng)成計劃,按照企業(yè)的工作模式開展學(xué)習(xí)。【素養(yǎng)目標】項目導(dǎo)讀
數(shù)學(xué)形態(tài)學(xué)(Mathematicalmorphology)是一門建立在格論和拓撲學(xué)基礎(chǔ)之上的圖像分析學(xué)科,是數(shù)學(xué)形態(tài)學(xué)圖像處理的基本理論。其基本的運算包括:二值腐蝕和膨脹、二值開運算和閉運算、擊中擊不中變換、形態(tài)學(xué)梯度等。形態(tài)學(xué)是圖像處理中應(yīng)用最為廣泛的技術(shù)之一,主要用于從圖像中提取對表達和描繪區(qū)域形狀有意義的圖像分量,使后續(xù)的識別工作能夠抓住目標對象最為本質(zhì)的形狀特征,如邊界和連通區(qū)域等。同時像細化、像素化和修剪毛刺等技術(shù)也常應(yīng)用于圖像的預(yù)處理和后處理中,成為圖像增強技術(shù)的有力補充。形態(tài)學(xué)的基本思想是利用一種特殊的結(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)學(xué)處理統(tǒng)計顆粒數(shù)量【知識鏈接】
在經(jīng)閾值處理提取出目標區(qū)域的二值圖像之后,區(qū)域邊緣可能并不理想,這時可以使用腐蝕或膨脹操作對區(qū)域進行“收縮”或“擴張”。腐蝕和膨脹是兩種最基本也是最重要的形態(tài)學(xué)運算,它們是很多高級形態(tài)學(xué)處理的基礎(chǔ),很多形態(tài)學(xué)算法都是由這兩種基本運算復(fù)合而成。1、結(jié)構(gòu)元素
結(jié)構(gòu)元素在算子參數(shù)中的名稱為StructElement,在腐蝕與膨脹操作中都需要用到。結(jié)構(gòu)元素是類似于“濾波核”的元素,或者說類似于一個“小窗”,在原圖上進行從上向下,從左向右“滑動”,求結(jié)構(gòu)元素與原圖的交集,結(jié)構(gòu)元素可以指定形狀和大小,其原點相當(dāng)于“小窗”的中心,其尺寸大小在進行腐蝕或者膨脹處理時根據(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)學(xué)處理檢測每張威化餅外觀質(zhì)量?!局R鏈接】
腐蝕與膨脹是形態(tài)學(xué)運算的基礎(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ù),如,當(dāng)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,
Rectangularity)
*顯示原圖
dev_display
(Image)
3.判斷并顯示結(jié)果
*判斷威化餅質(zhì)量的指標:孔洞面積>300或矩形度<0.92,為NG
if
(AreaHoles
>
300
or
Rectangularity
<
0.92)
*NG產(chǎn)品顯示為紅色
dev_set_color
('red')
*并文字提示“Not
OK”
Text
:=
'Not
OK'
else
*良品顯示草綠色
dev_set_color
('forest
green')
*并文字提示“OK”
Text
:=
'OK'
endif
*顯示處理結(jié)果,如圖7-12所示
dev_display
(FinalRegion)
*顯示文字信息“Not
OK”或“OK”
disp_message
(WindowHandle,
Text,
'window',
12,
12,
'',
'false’)
*如果文件名后兩位數(shù)值<24,總共24張圖像,否則結(jié)束
4.程序結(jié)束判斷
if
(Index
<
24)
*顯示“Press
Run(F5)
to
contine”信息,如圖7-13所示
disp_continue_message
(WindowHandle,
'black',
'true')
*暫停
stop
()
endif
endfor
謝謝機器視覺系統(tǒng)編程與開發(fā)<Halcon版>《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》項目8模版匹配【知識目標】1、理解圖像分割的概念的作用;2、了解幾種圖像分割的方法和應(yīng)用場合;3、會用普通閾值分割圖像。1.知道模板匹配的流程2.會用模板匹配的方法對圖形進行定位;1.提升圖像識讀能力和編程能力;2.培養(yǎng)圖像分析能力?!灸芰δ繕恕俊舅仞B(yǎng)目標】項目導(dǎo)讀
模板匹配是機器視覺工業(yè)現(xiàn)場中定位較為常用的一種方法,通過算法,在目標圖像中找到模板圖像的位置,即通過模板圖像與目標圖像之間的比對,從目標圖像中尋找與模板圖像灰度、邊緣、外形結(jié)構(gòu)等特征的相似圖形,從圖像的左上角開始從左向右、從上向下滑動,依次遍歷整幅圖像,根據(jù)不同的匹配算法,采用對應(yīng)的規(guī)則來判斷匹配的結(jié)果,一般來說,輸入是設(shè)定的圖像或者圖像中區(qū)域,輸出匹配目標圖像中感興趣區(qū)域的位置、相對模板圖像的旋轉(zhuǎn)角度、縮放比例以及匹配數(shù)量。Halcon軟件常用的模板匹配方式有許多,本項目主要分析基于形狀的和基于相關(guān)性的模板匹配。利用模板匹配查找多個商標利用相關(guān)性模板匹配檢測瓶蓋圖案利用模板匹配查找電子零配件任務(wù)3任務(wù)4任務(wù)2利用模板匹配查找回形針任務(wù)1利用模板匹配查找回形針任務(wù)12課時【任務(wù)要求】
根據(jù)形狀模板匹配對圖中的回形針進行匹配,依次匹配一個?!局R鏈接】
基于形狀的模板匹配,也稱為基于邊緣方向梯度的匹配,是一種最常用也最前沿的模板匹配算法。該算法以物體邊緣的梯度相關(guān)性作為匹配標準,提取ROI中的邊緣特征,結(jié)合灰度信息創(chuàng)建模板,并根據(jù)模板的大小和清晰度的要求生成多層級的圖像金字塔模型,然后在圖像金字塔層中自上而下逐層搜索模板圖像,直到搜索到最底層或得到確定的匹配結(jié)果為止。Halcon軟件中形狀模板匹配的算子為創(chuàng)建模板算子create_shape_model和匹配模板算子find_shape_model。算子釋義:create_shape_model—Prepareashapemodelformatching.格式:create_shape_model(Template::NumLevels,AngleStart,AngleExtent,AngleStep,Optimization,Metric,Contrast,MinContrast:ModelID)參數(shù):Template
--模板圖像;NumLevels--金字塔的最大層級--層級越高搜索越快;AngleStart,AngleExtent--模板旋轉(zhuǎn)的起始、終止角度--弧度;AngleStep--角度步長,一般>=0且<=pi/16;Optimization--設(shè)置模板優(yōu)化和模板創(chuàng)建方法;Metric--匹配方法設(shè)置;Contrast
--設(shè)置對比度;MinContrast--設(shè)置最小對比度;ModelID--模板窗口句柄。作用:創(chuàng)建形狀匹配模板。例:create_shape_model(ImageReduced,0,0,rad(360),'auto','no_pregeneration','use_polarity',40,10,ModelID)表示:創(chuàng)建形狀匹配模板,模板的金字塔層數(shù)為0,起始角度為00,終止角度為3600,角度步長為‘a(chǎn)uto',模板優(yōu)化方法為‘no_pregeneration',匹配方法選擇‘use_polarity',則圖像中的對象和模型中的對象必須具有相同的對比度;對比度為40,最小對比度為10,模板窗口的句柄名為‘ModelID’。算子釋義:find_shape_model—Findthebestmatchesofashapemodelinanimage.格式:find_shape_model(Image::ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness:Row,Column,Angle,Score)參數(shù):Image
--輸入圖像;ModelID--模板窗口句柄;AngleStart,AngleExtent--搜索時起始和終止角度;MinScore--被找到的模板最小匹配度--大于等于這個值才能被匹配,[0,1],默認0.5;NumMatches--要找到的模板最大實例數(shù),0為不限制;MaxOverlap--要找到的模型實例的最大重疊比例;SubPixel--計算精度的設(shè)置;NumLevels--搜索時金字塔的層級;Greediness
--貪婪度,搜索啟發(fā)式,一般都設(shè)為0.8,值越高速度越快;Row,Column,Angle--輸出匹配位置的行和列坐標、角度;
Score
--得分。作用:進行形狀模板匹配操作。例:find_shape_model(Image,ModelID,0,rad(360),0.7,13,0.5,'none',0,0.9,Row,Column,Angle,Score)表示:利用創(chuàng)建的模板ModelID,在圖像變量Image中的圖像上匹配所需的形狀特征,起始角度為'0-3600',最小匹配度為'0.7',最大匹配個數(shù)為'13',模型的最大重疊比例為'0.5',不使用亞像素精度,金字塔的層數(shù)與創(chuàng)建的模板金字塔相同,貪婪度為'0.9',輸出匹配位置的行和列坐標、角度以及匹配得分。【任務(wù)實施】
1.讀取圖像并初始化*讀取圖像
read_image
(Image,
'clip')
*獲取圖像尺寸大小
get_image_size
(Image,
Width,
Height)
*關(guān)閉窗口
dev_close_window
()
*新建一個圖像窗口
dev_open_window
(0,
0,
Width/2,
Height/2,
'black',
WindowHandle)
*顯示圖像,如圖8-2所示dev_display
(Image)
*繪制最小外接矩形
gen_rectangle2
(Rectangle,
Row1,
Column1,
Phi,
Length1,
Length2)
*膨脹操作,將外接矩形擴大dilation_rectangle1
(Rectangle,
RegionDilation,
9,
9)
*裁剪出一個回形針的圖形為創(chuàng)建模板用,如圖8-4所示reduce_domain
(Image,
RegionDilation,
ImageReduced)
*以ImageReduced創(chuàng)建模板,角度為0~360度
create_shape_model
(ImageReduced,
0,
0,
rad(360),
0,
'no_pregeneration',
'use_polarity',
40,
10,
ModelID)
*獲取模型參數(shù)
get_shape_model_params
(ModelID,
NumLevels,
AngleStart,
AngleExtent,
AngleStep,
ScaleMin,
ScaleMax,
ScaleStep,
Metric,
MinContrast)
2.選擇特征創(chuàng)建模板*閾值分割
threshold
(Image,
Regions,
0,
132)
*連通處理,打斷各個區(qū)域
connection
(Regions,
ConnectedRegions)
*開運算,去除噪聲
opening_rectangle1
(ConnectedRegions,
RegionOpening,
5,5)
*選擇左上角的回形針,如圖8-3所示select_shape
(RegionOpening,
SelectedRegions,
'row1',
'and',
0,
72)
select_shape
(SelectedRegions,
SelectedRegions1,
'column2',
'and',
100,
500)
*填充
fill_up
(SelectedRegions1,
RegionFillUp)
*最小外接矩形
smallest_rectangle2
(RegionFillUp,
Row1,
Column1,
Phi,
Length1,
Length2)
3.查找匹配特征
*查找匹配圖形find_shape_model
(Image,
ModelID,
0,
rad(360),
0.7,
13,
0.5,
'interpolation',0,
0.9,
Row,
Column,
Angle,
Score)
*獲取模型的輪廓contours
get_shape_model_contours
(ModelContours,
ModelID,
1)
4.顯示匹配結(jié)果
for
i
:=
0
to
|Score|
-
1
by
1
*計算剛性仿射變換矩陣
vector_angle_to_rigid
(0,
0,
0,
Row[i],
Column[i],
Angle[i],
HomMat2D)
*獲得的模型輪廓旋轉(zhuǎn)到匹配的輪廓,如圖8-5所示
affine_trans_contour_xld
(ModelContours,
ContoursAffinTrans,
HomMat2D)
endfor
*清除模板,釋放內(nèi)存
clear_shape_model
(ModelID)
下一任務(wù)介紹:利用模板匹配查找多個商標。利用模板匹配查找多個商標任務(wù)22課時【任務(wù)要求】根據(jù)形狀模板匹配對圖8-6進行檢索,一次查找多個商標?!救蝿?wù)實施】
1.讀取圖像并初始化*讀取圖像
read_image
(Image,
'green-dot')
*獲取圖像尺寸
get_image_size
(Image,
Width,
Height)
*關(guān)閉圖像
dev_close_window
()
*新建一個圖像窗口
dev_open_window
(0,
0,
Width,
Height,
'black',
WindowHandle)
*設(shè)定顯示顏色
dev_set_color
('red')
*顯示圖像,如圖8-7所示dev_display
(Image)
2.圖像處理,提取特征區(qū)域*閾值分割
threshold
(Image,
Region,
0,
128)
*連通域處理,打斷不相連的區(qū)域
connection
(Region,
ConnectedRegions)
*選擇面積在[10000,20000]之間的區(qū)域,就是選中中間圓的區(qū)域
select_shape
(ConnectedRegions,
SelectedRegions,
'area',
'and',
10000,
20000)
*填充
fill_up
(SelectedRegions,
RegionFillUp)
*膨脹操作,將圓擴大
dilation_circle
(RegionFillUp,
RegionDilation,
5.5)
*利用上一步的圓對原圖進行裁剪,不改變圖像大小,只是屏蔽圓以外的區(qū)域
,如圖8-8所示reduce_domain
(Image,
RegionDilation,
ImageReduced)
3.創(chuàng)建各向同性比例縮放形狀模板*創(chuàng)建各向同性模板
create_scaled_shape_model
(ImageReduced,
5,
rad(-45),
rad(90),
'auto',
0.8,
1.0,
'auto',
'none',
'ignore_global_polarity',
40,
10,
ModelID)
*獲取模板圖形的輪廓,中心點在原點(0,0)位置,如圖8-9所示get_shape_model_contours
(Model,
ModelID,
1)
*獲取模板區(qū)域的中心和角度
area_center
(RegionFillUp,
Area,
RowRef,
ColumnRef)
*創(chuàng)建仿射矩陣,從坐標(0,0)移動到模板中心(RowRef,
ColumnRef)
vector_angle_to_rigid
(0,
0,
0,
RowRef,
ColumnRef,
0,
HomMat2D)
*對模板輪廓進行仿射變換,將其移動到模板的中心,如圖8-10所示affine_trans_contour_xld
(Model,
ModelTrans,
HomMat2D)
*在模板匹配中,常用仿射變換來顯示結(jié)果的,每次完成匹配后,都需要把模板位置轉(zhuǎn)移到目標位置上去。*顯示圖像
dev_display
(Image)
*顯示模板輪廓
dev_display
(ModelTrans)
4.檢索特征*讀取要搜索的圖像
read_image
(ImageSearch,
'green-dots')
*顯示圖像
dev_display
(ImageSearch)
*搜索末班圖形,允許縮放,旋轉(zhuǎn)角度在(0,3600)度之間,搜索到的數(shù)量放在變量Score中
find_scaled_shape_model
(ImageSearch,
ModelID,
rad(0),rad(360),
0.8,
1.0,
0.5,
0,
0.5,
'least_squares',
5,
0.8,
Row,
Column,
Angle,
Scale,
Score)
*對搜索到的每個形狀進行放射變換,變換到原位置
for
I
:=
0
to
|Score|
-
1
by
1
*創(chuàng)建單位矩陣
hom_mat2d_identity
(HomMat2DIdentity)
*添加平移矩陣
hom_mat2d_translate
(HomMat2DIdentity,
Row[I],
Column[I],
HomMat2DTranslate)
*添加旋轉(zhuǎn)變換
hom_mat2d_rotate
(HomMat2DTranslate,
Angle[I],
Row[I],
Column[I],
HomMat2DRotate)
*添加比例縮放
hom_mat2d_scale
(HomMat2DRotate,
Scale[I],
Scale[I],
Row[I],
Column[I],
HomMat2DScale)
*進行仿射變換
affine_trans_contour_xld
(Model,
ModelTrans,
HomMat2DScale)
*顯示變換結(jié)果,遍歷圖像,找到所有特征,如圖8-11所示
dev_display
(ModelTrans)
endfor
*清除模型,釋放內(nèi)存
clear_shape_model
(ModelID)
下一任務(wù)介紹:利用模板匹配查找電子零配件。利用模板匹配查找電子零配件任務(wù)32課時【任務(wù)要求】
根據(jù)形狀模板匹配對圖像進行檢索,一次查找多個特征。【任務(wù)實施】
1.讀取圖像并初始化*獲取圖像
read_image
(Image,
‘Parts00.png’)
*獲取圖像尺寸
get_image_size
(Image,
Width,
Height)
*關(guān)閉窗口
dev_close_window
()
*新建一個窗口
dev_open_window_fit_image
(Image,
0,
0,
-1,
-1,
WindowHandle)
*顯示圖像
,如圖8-13所示dev_display
(Image)
2.繪制ROI,獲取區(qū)域,制作模板*設(shè)定顯示線寬
dev_set_line_width
(2)
*利用ROI工具,在圓形墊圈上繪制圓形ROI
gen_circle
(ModelRegion,
170.157,
318.094,
66.5761)
*裁剪制作模板1,如圖8-14所示reduce_domain
(Image,
ModelRegion,
TemplateImage)
*創(chuàng)建模板1
create_shape_model
(TemplateImage,
5,
rad(0),
rad(360),
rad(1.9272),
['none','no_pregeneration'],
'use_polarity',
[29,54,4],
5,
ModelID)*獲取模板1模板輪廓金字塔
get_shape_model_contours
(ModelContours,
ModelID,
1)
*利用ROI工具在蝸桿上繪制矩形ROI
gen_rectangle1
(ModelRegion1,
379.087,
307.217,
474.547,
458.583)
*裁剪制作模板2,如圖8-15所示reduce_domain
(Image,
ModelRegion1,
TemplateImage1)
*創(chuàng)建模板2
create_shape_model
(TemplateImage1,
5,
rad(0),
rad(360),
rad(1.9272),
['none','no_pregeneration'],
'use_polarity',
[29,54,4],
5,
ModelID1)
*獲取模板2模板輪廓金字塔
get_shape_model_contours
(ModelContours1,
ModelID1,
1)
3.依次讀取圖像進行模板匹配并顯示匹配結(jié)果*依次獲取圖像,對圖像進行檢測
TestImages
:=
['Parts01.png','Parts02.png']
for
T
:=
0
to
|TestImages|-1
by
1
*讀取圖像
read_image
(Image,
TestImages[T])
*模板匹配
find_shape_models
(Image,
[ModelID,ModelID1],
rad(0),
rad(360),
0.5,
5,
0.5,
'least_squares',
0,
0.9,
Row,
Column,
Angle,
Score,
Model)
dev_display
(Image)
if
(|Score|>=1)
*顯示匹配結(jié)果,如圖8-16所示
dev_display_shape_matching_results
([ModelID,ModelID1],
['red','green'],
Row,
Column,
Angle,
1,
1,Model)
endif
endfor
*釋放模板文件
clear_shape_model
(ModelID)
下一任務(wù)介紹:利用相關(guān)性模板匹配檢測瓶蓋圖案。利用相關(guān)性模板匹配檢測瓶蓋圖案任務(wù)42課時【任務(wù)要求】
相關(guān)性模板匹配檢測圖所示的瓶蓋圖案。
【知識鏈接】歸一化相關(guān)性NCC,(normalizationcross-correlation)是基于統(tǒng)計學(xué)計算兩組樣本相關(guān)性的算法,其取值范圍為[-1,1]之間,而對圖像來說,每個像素看成RGB的向量,整個圖像就是一個樣本集合,如果它有一個子集,與另一個樣本數(shù)據(jù)相互匹配,則它的NCC值為1;表示相關(guān)性最高,如果是-1,表完全無關(guān);基于此原理實現(xiàn)模板的匹配識別。相關(guān)性模板匹配的算子為創(chuàng)建模板算子create_ncc_model和匹配模板算子find_ncc_model。算子釋義:create_ncc_model—PrepareanNCCmodelformatching.格式:create_ncc_model(Template::NumLevels,AngleStart,AngleExtent,AngleStep,Metric:ModelID)參數(shù):Template
--模板圖像;NumLevels--金字塔的最大層級--層級越高搜索越快;AngleStart,AngleExtent--模板旋轉(zhuǎn)的起始、終止角度--弧度;AngleStep--角度步長;Metric--匹配方法設(shè)置;ModelID--模板窗口句柄。作用:創(chuàng)建相關(guān)性匹配模板。例:create_ncc_model(Image,'auto',0,0,'auto','use_polarity',ModelID)表示:模板所在的圖像為Image,金字塔層數(shù)為自動計算,起始角度為'0-3600',步長為'自動計算',檢測圖像中的目標對象和模板中的目標對象具有相同的對比度“方向”,模板句柄為ModelID。算子釋義:find_ncc_model—FindthebestmatchesofanNCCmodelinanimage.格式:find_ncc_model(Image::ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels:Row,Column,Angle,Score)參數(shù):Image
--輸入圖像;ModelID--模板窗口句柄;AngleStart,AngleExtent--搜索時起始和終止角度;MinScore--被找到的模板最小分數(shù)--大于等于這個值才能被匹配,[0,1],默認0.5;NumMatches--要找到的模板最大實例數(shù),0為不限制;MaxOverlap
--要找到的模型實例的最大重疊比例;SubPixel--計算精度的設(shè)置;NumLevels
--搜索時金字塔的層級;Row,Column,Angle--輸出匹配位置的行和列坐標、角度;Score
匹配得分。作用:進行相關(guān)性模板匹配操作。例:find_ncc_model(Image,ModelID,0,0,0.5,1,0.5,'true',0,Row,Column,Angle,Score)表示:利用創(chuàng)建的模板
ModelID,在圖像變量Image中的圖像上匹配所需的形狀特征,起始角度為'0-3600',最小匹配度為'0.5',最大匹配個數(shù)為'1',模型的最大重疊比例為'0.5',使用亞像素精度,金字塔的層數(shù)為0,輸出匹配位置的行和列坐標、角度以及匹配得分。
【任務(wù)實施】
1.讀取圖像并初始化*
讀取圖像
read_image
(Image,
'cap_exposure/cap_exposure_03')
*獲取圖像尺寸
get_image_size
(Image,
Width,
Height)
*關(guān)閉當(dāng)前窗口
dev_close_window
()
*新建一個窗口,和圖像大小一致
dev_open_window_fit_image
(Image,
0,
0,
-1,
-1,
WindowHandle)
*設(shè)定顯示字體
set_display_font
(WindowHandle,
16,
'mono',
'true',
'false')
*顯示圖像,如圖8-14所示dev_display
(Image)
2.獲取模板區(qū)域*增強對比度
scale_image_max
(Image,
ImageScaleMax)
*閾值分割
threshold
(ImageScaleMax,
Regions,
34,
255)
*填充孔洞
fill_up
(Regions,
RegionFillUp)
*開運算,去除噪聲
opening_circle
(RegionFillUp,
RegionOpening,
150)
*獲取區(qū)域中心
area_center
(RegionOpening,
Area,
RowRef,
ColumnRef)
*裁剪圖像,獲得區(qū)域ImageReduced,用于創(chuàng)建模板,如圖8-15所示reduce_domain
(Image,
RegionOpening,
ImageReduced)
3.創(chuàng)建NCC模板*創(chuàng)建NCC模板
create_ncc_model
(ImageReduced,
'auto',
0,
0,
'auto',
'use_polarity',
ModelID)
*設(shè)定顯示模式為'margin',顯示邊緣
dev_set_draw
('margin')
dev_display
(Image)
dev_set_color
('yellow')
dev_display
(ImageReduced)
disp_message
(WindowHandle,'創(chuàng)建
NCC
模板',
'window',
12,
12,
'black',
'true')
stop
()
4.模板匹配*依次讀取10張測試圖像
for
J
:=
1
to
10
by
1
*讀取圖像,圖像文件名為cap_exposure_**
read_image
(Image,
'cap_exposure/cap_exposure_'
+
J$'02')
*匹配模型
find_ncc_model
(Image,
ModelID,
0,
0,
0.5,
1,
0.5,
'true',
0,
Row,
Column,
Angle,
Score)
dev_display
(Image)
*顯示匹配結(jié)果
,如圖8-16所示
dev_display_ncc_matching_results
(ModelID,
'green',
Row,
Column,
Angle,
0)
*顯示消息
disp_message
(WindowHandle,
'找到
NCC
模型',
'window',
12,
12,
'black',
'true')
if
(J
<
10)
*如果已讀張數(shù)不到10張,提示按F5
continue
disp_continue_message
(WindowHandle,
'black',
'true')
endif
stop
()
endfor
clear_ncc_model(ModelID)謝謝機器視覺系統(tǒng)編程與開發(fā)<Halcon版>《HALCON機器視覺系統(tǒng)編程基礎(chǔ)》項目9邊緣檢測【知識目標】1.掌握像素級邊緣提取的算子,學(xué)會使用邊緣濾波器提取圖像中特征的邊緣;2.掌握亞像素級邊緣提取的算子,學(xué)會亞像素邊緣提取、擬合及XLD特征選擇。1.掌握亞像素邊緣輪廓的提?。?.會用亞像素邊緣輪廓對圖像進行分割操作,獲取所需要的特征。1.養(yǎng)成仔細認真的工作品質(zhì);2.加強個人素養(yǎng)的培養(yǎng)?!灸芰δ繕恕俊舅仞B(yǎng)目標】項目導(dǎo)讀
邊緣檢測和閾值分割是圖像分割的兩種工具,區(qū)域的邊緣是圖像中灰度值變化強烈的地方,是不同區(qū)域之間的界限,一般是區(qū)域的連續(xù)性發(fā)生跳躍性突變的位置,是圖像中特征與特征之間區(qū)分的依據(jù),針對邊緣特征的檢測和計算,可以獲取區(qū)域的邊緣輪廓,在視覺處理中也作為圖像分割處理的方式,在計算機視覺中有許多常用的算子,如Sobel算子、Laplace算子和Canny算子等,邊緣的提取可以分為像素級邊緣提取和亞像素級邊緣提取,本項目將通過2個任務(wù),來掌握邊緣檢測的方法。提取白色銘牌區(qū)域威化餅外觀質(zhì)量檢測任務(wù)2任務(wù)1提取白色銘牌區(qū)域任務(wù)12課時【任務(wù)要求】
利用edges_image算子提取圖中白色銘牌區(qū)域。【知識鏈接】
使用邊緣提取,得到的邊緣是大于一個像素的輪廓,因此要對所得到的圖像進行骨架化,從而得到比較清晰的邊緣輪廓。有時候還需要進行非最大抑制處理,常用的像素級邊緣提取采用edges_image算子。算子釋義:edges_image—ExtractedgesusingDeriche,Lanser,Shen,orCannyfilters.格式:edges_image(Image:ImaAmp,ImaDir:Filter,Alpha,NMS,Low,High:)參數(shù):Image
--輸入圖形;ImaAmp--輸出圖像的邊緣振幅;ImaDir--輸出方向,F(xiàn)ilter--輸入濾波器;Alpha--輸入平滑系數(shù),NMS--輸入非極大值抑制;Low,High--輸入滯后閾值下、上限。作用:使用某種濾波器提取邊緣。例:edges_image(Image,ImaAmp,ImaDir,'canny',1,'nms',20,40)表示:對Image圖像變量中的圖像進行邊緣提取,邊緣振幅為ImaAmp,輸出方向為ImaDir,濾波器為'canny',平滑系數(shù)為'1',使用非極大值抑制,滯后閾值下限為20,上限為40。邊緣濾波器選擇準則:①產(chǎn)生的輸出信噪比要最大化,可以降低對邊緣點的錯檢和漏檢;②提取出來的位置方差要最小化,可以使提取出來的邊緣更靠近真正的邊緣;③提取出來的邊緣位置之間的距離要最大化,濾波器對每個真正的邊緣只返回唯一的一個邊緣,可以避免多重響應(yīng)。骨骼:一個圖像的“骨骼”是指圖像中央的骨骼部分,是描述圖像幾何拓撲性質(zhì)的重要特征之一。骨骼提取是通過選定合適的結(jié)構(gòu)元素B,對區(qū)域進行連續(xù)腐蝕和開運算來求得。骨骼的算子為skeleton。算子釋義:skeleton—Computetheskeletonofaregion.格式:skeleton(Region:Skeleton::)參數(shù):Region--輸入圖形;Skeleton--輸出區(qū)域骨骼。作用:計算區(qū)域的骨骼。例:skeleton(Region,Skeleton)表示:計算區(qū)域Rigion的骨架。【任務(wù)實施】1.讀取圖像并初始化*獲取圖像
read_image
(Image,
'fabrik')
*關(guān)閉窗口
dev_close_window
()
*獲取圖像尺寸大小
get_image_size
(Image,
Width,
Height)
*新建一個和圖像大小一致的窗口
dev_open_window
(0,
0,
Width,
Height,
'black',
WindowID)
*顯示圖像,如圖9-2所示dev_display
(Image)
2.圖像處理*提取邊緣,利用'canny'算子提取邊緣輪廓,如圖9-3所示edges_image
(Image,
ImaAmp,
ImaDir,
'canny',
0.5,
'nms',
8,
16)
*閾值分割
threshold
(ImaAmp,
Region,
8,
255)
*提取骨架,可以使輪廓更清晰skeleton
(Region,
Skeleton)
*求骨骼的端點和關(guān)節(jié)點,如圖9-4所示junctions_skeleton
(Skeleton,
EndPoints,
JuncPoints)
*布爾差,從骨骼去除關(guān)節(jié)點,把骨骼分割成單點像素寬度、無分支區(qū)域,如圖9-5所示difference
(Skeleton,
JuncPoints,
SkelWithoutJunc)
*連通域處理
connection
(SkelWithoutJunc,
SingleBranches)
*特征選擇,利用特征直方圖根據(jù)'area'進行選擇,如圖9-6所示select_shape
(SingleBranches,
SelectedBranches,
'area',
'and',
370,
390)
*最小外接矩形
smallest_rectangle2
(SelectedBranches,
Row,
Column,
Phi,
Length1,
Length2)
*繪制最小外接矩形
gen_rectangle2
(Rectangle,
Row,
Column,
Phi,
Length1,
Length2)
*裁剪銘牌區(qū)域
reduce_domain
(Image,
Rectangle,
ImageReduced)
3.顯示結(jié)果*清除窗口
dev_clear_window
()
*顯示銘牌區(qū)域,如圖9-7所示dev_display
(ImageReduced)
下一任務(wù)介紹:檢測芯片內(nèi)外矩形之間的中心距和角度差。檢測芯片內(nèi)外矩形之間的中心距和角度差任務(wù)2【任務(wù)要求】求圖9-8所示芯片內(nèi)外矩形的中心距和角度偏差?!局R鏈接】
亞像素:像素是成像面的基本單位也是最小單位,其像素間存在一定的距離。在成像時,對物理世界中連續(xù)的圖像進行了離散化處理,這時成像面上每一個像素點只代表其附近的顏色。而兩個像素之間有距離的存在,雖然在宏觀上可以看作是連在一起的,但在微觀上它們之間還有無限更小的東西存在,是兩個物理像素之間的“像素”,這些更小的東西就稱為“亞像素”。Halcon軟件中以“_XLD”結(jié)尾的算子都是用來處理亞像素輪廓的算子。最常用的提取亞像素輪廓的算子是edges_sub_pix。算子釋義:edges_sub_pix—Extractsub-pixelpreciseedgesusingDeriche,Lanser,Shen,orCannyfilters.格式:edges_sub_pix(Image:Edges:Filter,Alpha,Low,High:
)參數(shù):Image
--輸入圖形;Edges--輸出的XLD輪廓;Filter
--輸入濾波器;Alpha--輸入平滑系數(shù),Low,High--輸入滯后閾值下、上限。作用:使用某種濾波器提取輪廓邊緣亞像素輪廓。例:edges_sub_pix(Image,Edges,'canny',1,20,40)表示:對圖像變量Image中的圖像進行亞像素提取,采用'canny'過濾器,平滑系數(shù)為'1',滯后閾值下限為'20'、上限為'40',提取結(jié)果放入變量Edges中。算子釋義:threshold_sub_pix—Extractlevelcrossingsfromanimagewithsubpixelaccuracy.格式:threshold_sub_pix(Image:Border:Threshold:
)參數(shù):Image
--輸入圖形;Border--輸出的XLD輪廓;
Threshold--臨界灰度值。作用:使用臨界灰度值進行閾值分割提取邊緣亞像素輪廓。例:threshold_sub_pix(Image,Border,128)表示:用臨界灰度值128作為閾值對圖像變量Image中的圖形進行閾值分割,提取邊緣亞像素輪廓。【任務(wù)實施】1.讀取圖像并初始化*獲取圖像
read_image
(Image,
'die_on_chip')
*獲取圖像尺寸
get_image_size
(Image,
Width,
Height)
*關(guān)閉窗口
dev_close_window
()
*新建一個窗口,大小為圖像尺寸的一半,背景為亮灰色
dev_open_window
(0,
0,
Width
*
2,
Height
*
2,
'light
gray',
WindowID)
*顯示圖像,如圖9-9所示dev_display
(Image)
*設(shè)定窗口字體顯示樣式
set_display_font
(WindowID,
16,
'mono',
'true',
'false')
*
設(shè)定顯示線寬
dev_set_line_width
(2)
*填充方式為‘fill’
dev_set_draw
('fill')
2.提取內(nèi)部小矩形區(qū)域*快速閾值分割
fast_threshold
(Image,
Region,
120,
255,
20)
*開運算
opening_rectangle1
(Region,
RegionOpening,
4,
4)
*連通域處理
connection
(RegionOpening,
ConnectedRegions)
*填充
fill_up
(ConnectedRegions,
RegionFillUp)
*選擇中間白色矩形,如圖9-10所示select_shape
(RegionFillUp,
SelectedRegions,
['rectangularity','area'],
'and',
[0.8,700],
[1,99999])
*求最小外接矩形
smallest_rectangle2
(SelectedRegions,
Row,
Column,
Phi,
Length1,
Length2)*繪制最小外接矩形
gen_rectangle2
(Rectangle,
Row,
Column,
Phi,
Length1,
Length2)
*把區(qū)域縮小到邊界內(nèi),獲取邊界,然后膨脹,再裁剪,可以獲取邊界區(qū)域,常用boundary
(Rectangle,
RegionBorder,
'inner_filled')
*膨脹
dilation_rectangle1
(RegionBorder,
RegionDilation,
4,
4)
*裁剪獲取中間矩形的邊緣區(qū)域,如圖9-11所示reduce_domain
(Image,
RegionDilation,
ImageReduced)
dev_clear_window
()
dev_display
(ImageReduced)
stop
()
3.提取中間小矩形XLD輪廓
*
獲取XLD輪廓
,如圖9-12所示edges_sub_pix
(ImageReduced,
Edges,
'canny',
1.5,
30,
40)
*對邊緣輪廓進行分割
segment_contours_xld
(Edges,
ContoursSplit,
'lines',
5,
2,
2)
*根據(jù)'contour_length'選擇輪廓
select_contours_xld
(ContoursSplit,
SelectedContours1,
'contour_length',
10,
99999,
-0.5,
0.5)
*對選擇的輪廓進行擬合操作union_adjacent_contours_xld
(SelectedContours1,
UnionContours1,
30,
1,
'attr_keep')
*
根據(jù)輪廓擬合矩形,如圖9-13所示fit_rectangle2_contour_xld
(UnionContours1,
'tukey',
-1,
0,
0,
3,
2,
Row1,
Column1,
Phi1,
Length11,
Length12,
PointOrder1)
*繪制矩形
gen_rectangle2_contour_xld
(Rectangle1,
Row1,
Column1,
Phi1,
Length11,
Length12)
4.
篩選外圈大矩形
*快速閾值分割
fast_threshold
(Image,
Region1,
65,
255,
20)
*連通域處理
connection
(Region1,
ConnectedRegions1)
*開運算
opening_rectangle1
(ConnectedRegions1,
RegionOpening1,
10,
10)*填充
fill_up
(RegionOpening1,
RegionFillUp1)
*選擇大矩形
select_shape
(RegionFillUp1,
SelectedRegions1,
'area',
'and',
1000,
99999)
*獲取大矩形的邊界
boundary
(SelectedRegions1,
RegionBorder1,
'inner')
*對大矩形邊界進行膨脹操作,如圖9-14所示dilation_rectangle1
(RegionBorder1,
RegionDilation1,
10,
10)
*裁剪出大矩形邊界
reduce_domain
(Image,
RegionDilation1,
ImageReduced1)
dev_clear_window
()
dev_display
(ImageReduced1)
stop
()
*獲取大矩形的邊界
boundary
(SelectedRegions1,
RegionBorder1,
'inner')
*對大矩形邊界進行膨脹操作,如圖9-14所示dilation_rectangle1
(RegionBorder1,
RegionDilation1,
10,
10)
*裁剪出大矩形邊界
reduce_domain
(Image,
RegionDilation
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防接種工作人員考試題庫
- 遼寧省錦州市2024-2025學(xué)年七年級下學(xué)期期末歷史試題 (含答案)
- 河北省衡水市阜城實驗中學(xué)2024-2025學(xué)年高一上學(xué)期10月月考物理試卷(含解析)
- 廣東省香山中學(xué)、高要一中、廣信中學(xué)2024-2025學(xué)年高一下學(xué)期第一次教學(xué)質(zhì)量檢測生物學(xué)試卷(含答案)
- 2025秋新版五年級上冊英語常用表達重點句型
- 廣東省深圳市高峰學(xué)校2017-2018學(xué)年八年級上學(xué)期期中考試數(shù)學(xué)試題(含答案)
- 山東省濟南市高新區(qū)2023-2024學(xué)年七年級上學(xué)期期末英語試題(原卷版)
- 文言文閱讀之拓展探究(練習(xí))原卷版-2026年中考語文一輪復(fù)習(xí)之古詩文
- 鐵路貨檢人員上崗證培訓(xùn)考試題庫(附答案)
- 天津市某中學(xué)2023-2024學(xué)年高一年級上冊期中考試化學(xué)試題(解析版)
- 老年人轉(zhuǎn)運照護-輪椅運轉(zhuǎn)
- 碧桂園精裝修部品工程交底指引(2020版)
- 國家電網(wǎng)公司供電企業(yè)勞動定員標準
- 貴陽志源機械產(chǎn)品開發(fā)有限公司搬遷項目環(huán)評報告
- 計算機網(wǎng)絡(luò)基礎(chǔ)與應(yīng)用-網(wǎng)絡(luò)管理與維護
- 夏季防暑降溫安全培訓(xùn)知識內(nèi)容
- 合同補充協(xié)議合同補充協(xié)議
- 中興 ZXNOE 9700 系統(tǒng)介紹
- 有理數(shù)加減混合運算練習(xí)題300道-
- 公路工程地質(zhì)勘察報告課件
- DB4401-T 6-2018園林綠地養(yǎng)護技術(shù)規(guī)范-(高清現(xiàn)行)
評論
0/150
提交評論