一、提要
對(duì)于官方幫助文件的案例,需要逐一跟蹤代碼,掌握這些技能不很容易,因?yàn)檫@需要多種算子互相搭配,可以說(shuō)每一個(gè)案例都針對(duì)一個(gè)測(cè)量場(chǎng)景,因此,學(xué)習(xí)halcon不要從一個(gè)一個(gè)算子做起,而要從案例做起。因?yàn)榫唧w問(wèn)題不同,方法也不同,比如,地圖的邊緣提取,和加工零件的邊緣提取做法有不同,注意這種細(xì)節(jié)。
二、必要的算子介紹
2.1 dev_set_draw
dev_set_draw 定義區(qū)域的填充模式。如果 DrawMode 設(shè)置為“filled”,則區(qū)域顯示為填充,如果設(shè)置為“margin”,則僅顯示輪廓。在 'margin' 模式下,輪廓的外觀會(huì)受到 dev_set_line_width、set_line_approx 和 set_line_style 的影響。
1)算子形式
dev_set_draw( : : DrawMode : )
2)參數(shù)描述
DrawMode參數(shù)兩個(gè)選項(xiàng)(“filled”,和 “margin”),設(shè)定完后,顯示區(qū)域方式就變了,如圖:
.2 area_center
獲得區(qū)域的面積和中心位置。
運(yùn)算符 area_center 計(jì)算輸入?yún)^(qū)域的面積和中心。面積定義為一個(gè)區(qū)域的像素?cái)?shù)。中心分別計(jì)算為所有像素的行坐標(biāo)或列坐標(biāo)的平均值。如果傳遞了多個(gè)區(qū)域,則結(jié)果存儲(chǔ)在元組中,元組中值的索引對(duì)應(yīng)于輸入?yún)^(qū)域的索引。在空白區(qū)域的情況下,如果沒(méi)有設(shè)置其他行為,則所有參數(shù)的值都為 0.0(參見(jiàn) set_system)。
1)算子形式
area_center(Regions : : : Area, Row, Column)
2)參數(shù)描述
Regions :輸入?yún)^(qū)域
Area, 區(qū)域面積
Row, 行坐標(biāo)
Column,列坐標(biāo)
2.3 orientation_region
運(yùn)算符orientation_region 計(jì)算區(qū)域的方向。運(yùn)算符基于 elliptic_axis。此外,計(jì)算輪廓上與重心距離最大的點(diǎn)。如果在旋轉(zhuǎn)坐標(biāo)系中,該點(diǎn)的列坐標(biāo)小于重心的列坐標(biāo),則將 的值加到角度上。如果傳遞了多個(gè)區(qū)域,則結(jié)果存儲(chǔ)在元組中,元組中值的索引對(duì)應(yīng)于輸入中區(qū)域的索引。
1)算子形式
orientation_region(Regions : : : Phi)
2)參數(shù)描述
Regions :輸入?yún)^(qū)域
Phi, 輸出角度,就是區(qū)域不對(duì)稱的旋轉(zhuǎn)角度。也就是外接矩形的角
disp_cross (WindowID, RowCenterRegion, ColumnCenterRegion, 15, 0)
disp_arrow (WindowID, RowCenterRegion, ColumnCenterRegion, RowCenterRegion - 60 * sin(OrientationRegion), ColumnCenterRegion + 60 * cos(OrientationRegion), 2)
顯示十字叉、箭頭。
三、邊緣提取算子
edges_sub_pix 使用遞歸實(shí)現(xiàn)的濾波器(根據(jù) Deriche、Lanser 和 Shen)或 Canny 提出的傳統(tǒng)實(shí)現(xiàn)的“高斯導(dǎo)數(shù)”濾波器(使用濾波器掩碼)檢測(cè)階梯邊緣。
1)算子形式
edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )
2)參數(shù)解釋
Image : 輸入圖像
Edges : 輸出邊緣像素
Filter,:算法選擇,可選擇算法是【'deriche1', 'lanser1', 'deriche2', 'lanser2', 'shen', 'mshen', 'canny', 'sobel', and 'sobel_fast'】
Alpha,
Low,
High :
3)參數(shù)詳細(xì)
edges_sub_pix 使用遞歸實(shí)現(xiàn)的濾波器(根據(jù) Deriche、Lanser 和 Shen)或 Canny 提出的傳統(tǒng)實(shí)現(xiàn)的“高斯導(dǎo)數(shù)”濾波器(使用濾波器掩碼)檢測(cè)階梯邊緣。因此,可以使用以下邊緣運(yùn)算符:“deriche1”、“l(fā)anser1”、“deriche2”、“l(fā)anser2”、“shen”、“mshen”、“canny”、“sobel”和“sobel_fast”
(參數(shù)過(guò)濾器)。
提取的邊緣在 Edges 中作為亞像素精確的 XLD 輪廓返回。對(duì)于除 'sobel_fast' 之外的所有邊緣運(yùn)算符,為每個(gè)邊緣點(diǎn)定義了以下屬性(參見(jiàn) get_contour_attrib_xld):
'edge_direction' 邊緣方向
'angle' 法線向量到輪廓的方向(當(dāng)輪廓從起點(diǎn)到終點(diǎn)遍歷時(shí),法線向量指向輪廓的右側(cè);角度是相對(duì)于圖像的行軸給出的) .)
“響應(yīng)”邊緣幅度(梯度幅度)
除了'sobel'和'sobel_fast'之外的所有邊緣算子的“濾波器寬度”(即平滑量)可以任意選擇,可以通過(guò)調(diào)用info_edges來(lái)估計(jì)參數(shù)Alpha的具體值。對(duì)于所有過(guò)濾器(Deriche、Lanser 和 Shen 過(guò)濾器),“過(guò)濾器寬度”隨著 Alpha 的增加而減小。唯一的例外是 Canny 過(guò)濾器,其中增加的 Alpha 也會(huì)導(dǎo)致“過(guò)濾器寬度”的增加。“寬”濾波器對(duì)噪聲表現(xiàn)出更大的不變性,但檢測(cè)小細(xì)節(jié)的能力也有所下降。非遞歸過(guò)濾器,例如 Canny 過(guò)濾器,是使用過(guò)濾器掩碼實(shí)現(xiàn)的,因此增加過(guò)濾器寬度會(huì)增加執(zhí)行時(shí)間。相反,遞歸過(guò)濾器的執(zhí)行時(shí)間不取決于過(guò)濾器的寬度。因此,使用 Derche、Lanser 和 Shen 過(guò)濾器可以實(shí)現(xiàn)任意過(guò)濾器寬度,而不會(huì)增加操作員的運(yùn)行時(shí)間。與 Canny 算子相比,由此產(chǎn)生的速度優(yōu)勢(shì)自然會(huì)隨著更大的過(guò)濾器寬度而增加。作為邊界處理,遞歸算子假設(shè)圖像在圖像之外為零,而 Canny 算子在圖像邊界處重復(fù)灰度值。可通過(guò)以下 Alpha 選擇獲得可比較的過(guò)濾器寬度:
3.2 get_contour_attrib_xld
獲取線段的屬性特征參數(shù)值。
1)算子格式
get_contour_attrib_xld(Contour : : Name : Attrib)
2)參數(shù)解釋
Contour:輸入曲線對(duì)象XLD
Name:屬性名稱,值域?yàn)椤?'regr_norm_row', 'regr_norm_col', 'regr_mean_dist', 'regr_dev_dist', 'cont_approx', 'bright_dark', 'is_hole'】
Attrib:輸出屬性值,1表示肯定,0表示否定
3)參數(shù)詳細(xì)
用query_contour_global_attribs_xld(SingleSegment,Attribs)函數(shù)可以獲取屬性,只有【cont_approx】一項(xiàng),因此,其它選項(xiàng)都不能用。
Name參數(shù)的值的意義:
cont_approx:有曲率的曲線,此時(shí),Attrib=-1,直線;Attrib=0,橢圓;Attrib=1,圓
四、距離測(cè)量項(xiàng)目
4.1 項(xiàng)目描述
在下列工件中,測(cè)量出四個(gè)圓周的圓心之間距離。項(xiàng)目需要以下知識(shí)點(diǎn):
如何區(qū)域生成?
如何邊緣提取?
如何xld生成
如何xld分段?
xld分段如何訪問(wèn)?
如何獲取曲線特征參數(shù)?
如何中心點(diǎn)距離測(cè)量?
4.2 參考代碼
read_image (Image, 'metal-parts/metal-parts-01')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'light gray', WindowID)
dev_set_draw ('fill')
threshold (Image, Region, 100, 255)
clear_window(WindowID)
disp_region(Region, WindowID)
edges_sub_pix (Image, Edges, 'canny', 0.6, 30, 70)
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 6, 4, 4)
dev_clear_window ()
dev_set_colored (12)
dev_display (ContoursSplit)
count_obj (ContoursSplit, NumSegments)
dev_display (Image)
NumCircles := 0
RowsCenterCircle := []
ColumnsCenterCircle := []
for i := 1 to NumSegments by 1
select_obj (ContoursSplit, SingleSegment, i)
get_contour_global_attrib_xld (SingleSegment, 'cont_approx', Attrib)
if (Attrib == 1)
NumCircles := NumCircles + 1
fit_circle_contour_xld (SingleSegment, 'atukey', -1, 2, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1)
RowsCenterCircle := [RowsCenterCircle,Row]
ColumnsCenterCircle := [ColumnsCenterCircle,Column]
dev_display (ContCircle)
endif
endfor
distance_pp (RowsCenterCircle[1], ColumnsCenterCircle[1], RowsCenterCircle[2], ColumnsCenterCircle[2], Distance_2_3)
distance_pp (RowsCenterCircle[0], ColumnsCenterCircle[0], RowsCenterCircle[2], ColumnsCenterCircle[2], Distance_1_3)
distance_pp (RowsCenterCircle[3], ColumnsCenterCircle[3], RowsCenterCircle[4], ColumnsCenterCircle[4], Distance_4_5)
編輯:黃飛
-
濾波器
+關(guān)注
關(guān)注
162文章
8081瀏覽量
181109 -
算法
+關(guān)注
關(guān)注
23文章
4700瀏覽量
94796 -
HALCON
+關(guān)注
關(guān)注
17文章
66瀏覽量
27692
原文標(biāo)題:halcon案例01 】金屬工件幾何測(cè)量
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于圖像處理技術(shù)的螺紋幾何參數(shù)測(cè)量系統(tǒng)設(shè)計(jì)

labview調(diào)用halcon軟件包
labview 視覺(jué)機(jī)器人抓取工件 如何測(cè)量工件偏轉(zhuǎn)角度
labview與halcon連用
測(cè)徑儀測(cè)量芯棒多種幾何尺寸
光學(xué)3D表面輪廓儀可以測(cè)金屬嗎?
車刀幾何角度的測(cè)量
【光譜共焦傳感器案例分享】金屬內(nèi)壁輪廓掃描測(cè)量

Halcon中的測(cè)量工具之Metrology介紹
光柵測(cè)長(zhǎng)機(jī)測(cè)量工件外徑步驟及注意事項(xiàng)

閃測(cè)儀如何測(cè)量工件尺寸的?

激光跟蹤儀在超大型工件空間測(cè)量中的應(yīng)用,你了解多少?

幾何尺寸測(cè)量工具介紹

復(fù)雜工件的高效測(cè)量方案:自動(dòng)化三坐標(biāo)測(cè)量與影像測(cè)量技術(shù)集成

評(píng)論