0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

halcon案例:金屬工件幾何測量

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:csdn ? 2023-04-24 09:53 ? 次閱讀

一、提要

對于官方幫助文件的案例,需要逐一跟蹤代碼,掌握這些技能不很容易,因?yàn)檫@需要多種算子互相搭配,可以說每一個(gè)案例都針對一個(gè)測量場景,因此,學(xué)習(xí)halcon不要從一個(gè)一個(gè)算子做起,而要從案例做起。因?yàn)榫唧w問題不同,方法也不同,比如,地圖的邊緣提取,和加工零件的邊緣提取做法有不同,注意這種細(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ǔ)在元組中,元組中值的索引對應(yīng)于輸入?yún)^(qū)域的索引。在空白區(qū)域的情況下,如果沒有設(shè)置其他行為,則所有參數(shù)的值都為 0.0(參見 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ǔ)在元組中,元組中值的索引對應(yīng)于輸入中區(qū)域的索引。

1)算子形式

orientation_region(Regions : : : Phi)

2)參數(shù)描述

Regions :輸入?yún)^(qū)域

Phi, 輸出角度,就是區(qū)域不對稱的旋轉(zhuǎn)角度。也就是外接矩形的角

968c399c-d60f-11ed-bfe3-dac502259ad0.png

disp_cross (WindowID, RowCenterRegion, ColumnCenterRegion, 15, 0)

disp_arrow (WindowID, RowCenterRegion, ColumnCenterRegion, RowCenterRegion - 60 * sin(OrientationRegion), ColumnCenterRegion + 60 * cos(OrientationRegion), 2)

顯示十字叉、箭頭。

三、邊緣提取算子

3.1 edges_sub_pix

edges_sub_pix 使用遞歸實(shí)現(xiàn)的濾波器(根據(jù) Deriche、Lanser 和 Shen)或 Canny 提出的傳統(tǒng)實(shí)現(xiàn)的“高斯導(dǎo)數(shù)”濾波器(使用濾波器掩碼)檢測階梯邊緣。

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ù)”濾波器(使用濾波器掩碼)檢測階梯邊緣。因此,可以使用以下邊緣運(yùn)算符:“deriche1”、“l(fā)anser1”、“deriche2”、“l(fā)anser2”、“shen”、“mshen”、“canny”、“sobel”和“sobel_fast”

(參數(shù)過濾器)。

提取的邊緣在 Edges 中作為亞像素精確的 XLD 輪廓返回。對于除 'sobel_fast' 之外的所有邊緣運(yùn)算符,為每個(gè)邊緣點(diǎn)定義了以下屬性(參見 get_contour_attrib_xld):

'edge_direction' 邊緣方向

'angle' 法線向量到輪廓的方向(當(dāng)輪廓從起點(diǎn)到終點(diǎn)遍歷時(shí),法線向量指向輪廓的右側(cè);角度是相對于圖像的行軸給出的) .)

“響應(yīng)”邊緣幅度(梯度幅度)

除了'sobel'和'sobel_fast'之外的所有邊緣算子的“濾波器寬度”(即平滑量)可以任意選擇,可以通過調(diào)用info_edges來估計(jì)參數(shù)Alpha的具體值。對于所有過濾器(Deriche、Lanser 和 Shen 過濾器),“過濾器寬度”隨著 Alpha 的增加而減小。唯一的例外是 Canny 過濾器,其中增加的 Alpha 也會(huì)導(dǎo)致“過濾器寬度”的增加。“寬”濾波器對噪聲表現(xiàn)出更大的不變性,但檢測小細(xì)節(jié)的能力也有所下降。非遞歸過濾器,例如 Canny 過濾器,是使用過濾器掩碼實(shí)現(xiàn)的,因此增加過濾器寬度會(huì)增加執(zhí)行時(shí)間。相反,遞歸過濾器的執(zhí)行時(shí)間不取決于過濾器的寬度。因此,使用 Derche、Lanser 和 Shen 過濾器可以實(shí)現(xiàn)任意過濾器寬度,而不會(huì)增加操作員的運(yùn)行時(shí)間。與 Canny 算子相比,由此產(chǎn)生的速度優(yōu)勢自然會(huì)隨著更大的過濾器寬度而增加。作為邊界處理,遞歸算子假設(shè)圖像在圖像之外為零,而 Canny 算子在圖像邊界處重復(fù)灰度值??赏ㄟ^以下 Alpha 選擇獲得可比較的過濾器寬度:

3.2 get_contour_attrib_xld

獲取線段的屬性特征參數(shù)值。

1)算子格式

get_contour_attrib_xld(Contour : : Name : Attrib)

2)參數(shù)解釋

Contour:輸入曲線對象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,圓

四、距離測量項(xiàng)目

4.1 項(xiàng)目描述

在下列工件中,測量出四個(gè)圓周的圓心之間距離。項(xiàng)目需要以下知識點(diǎn):

如何區(qū)域生成?

如何邊緣提???

如何xld生成

如何xld分段?

xld分段如何訪問?

如何獲取曲線特征參數(shù)?

如何中心點(diǎn)距離測量?

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)

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    161

    文章

    7859

    瀏覽量

    178675
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4629

    瀏覽量

    93186
  • HALCON
    +關(guān)注

    關(guān)注

    16

    文章

    66

    瀏覽量

    27267

原文標(biāo)題:halcon案例01 】金屬工件幾何測量

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于圖像處理技術(shù)的螺紋幾何參數(shù)測量系統(tǒng)設(shè)計(jì)

    檢測、幾何參數(shù)計(jì)算等步驟,實(shí)現(xiàn)了對螺紋幾何參數(shù)的自動(dòng)測量。通過大量實(shí)驗(yàn)證明,該系統(tǒng)具有快捷高效、數(shù)據(jù)可靠、易于操作、替代傳統(tǒng)人工操作的優(yōu)點(diǎn),有效提高了批量工件檢測的自動(dòng)化水平,具有重要
    的頭像 發(fā)表于 01-15 11:13 ?976次閱讀
    基于圖像處理技術(shù)的螺紋<b class='flag-5'>幾何</b>參數(shù)<b class='flag-5'>測量</b>系統(tǒng)設(shè)計(jì)

    labview調(diào)用halcon軟件包

    眾所周知NI在視覺這塊雖然有涉獵,但是它的一些算法性能比一些專業(yè)的視覺軟件如halcon要差,不可否認(rèn),NI_vision在一些尺寸測量方面、找直線還是比較便利的。如今的視覺系統(tǒng)需求越來越復(fù)雜
    發(fā)表于 05-27 12:04

    labview 視覺機(jī)器人抓取工件 如何測量工件偏轉(zhuǎn)角度

    請教大神:labview機(jī)器視覺中已經(jīng)建立CCD相機(jī)的坐標(biāo)系,那如何測量矩形工件相對于X軸擺放的角度?
    發(fā)表于 10-10 11:08

    labview與halcon連用

    本帖最后由 x451129684 于 2017-11-16 16:46 編輯 labview通過.net調(diào)用halcon算子,測量一個(gè)圓的角度
    發(fā)表于 11-16 09:39

    測徑儀測量芯棒多種幾何尺寸

    及允許公差等;實(shí)時(shí)直徑、測量位置距離固定尾座側(cè)端面的長度(距離)等。測量時(shí)顯示直徑和長度對應(yīng)的尺寸波動(dòng)曲線,工件錐度的計(jì)算值。當(dāng)測量數(shù)據(jù)處于設(shè)定的合格范圍內(nèi)時(shí),
    發(fā)表于 11-28 09:57

    微小工件輪廓測量用影像測量

    不同倍率下的鏡頭通過量不同,在相同的照明條件下,低倍率鏡頭下可正常觀察,但高倍率鏡頭下就會(huì)變暗。一鍵式自動(dòng)影像測量儀的校準(zhǔn)片,能自動(dòng)實(shí)現(xiàn)所有參數(shù)的校準(zhǔn)和校驗(yàn),各個(gè)倍率一致性在1um以內(nèi),微小工件輪廓
    發(fā)表于 07-20 09:01

    光學(xué)3D表面輪廓儀可以測金屬嗎?

    重建物體的三維模型。這種測量方式具有非接觸性、高精度、高速度等優(yōu)點(diǎn),非常適合用于金屬等材料的表面測量。 光學(xué)3D表面輪廓儀可以測量金屬的形狀
    發(fā)表于 08-21 13:41

    車刀幾何角度的測量

    車刀幾何角度的測量 一 、實(shí)驗(yàn)?zāi)康?、通過實(shí)驗(yàn)鞏固和加深對車刀幾何角度的標(biāo)準(zhǔn)坐標(biāo)系平面與車刀幾何角度坐標(biāo)系的基本定義
    發(fā)表于 05-15 00:37 ?1.1w次閱讀

    【光譜共焦傳感器案例分享】金屬內(nèi)壁輪廓掃描測量

    工件加工后需通過量具或儀器對其進(jìn)行精度檢測,確定是否合格,但是有些工件受其形狀的影響,輪廓是由許多不同的幾何要素所組成的,如直線、圓弧、二次曲線等,可能無法對其進(jìn)行測量或是
    的頭像 發(fā)表于 01-03 16:01 ?795次閱讀
    【光譜共焦傳感器案例分享】<b class='flag-5'>金屬</b>內(nèi)壁輪廓掃描<b class='flag-5'>測量</b>

    Halcon中的測量工具之Metrology介紹

    對于使用Halcon的小伙伴們來說,在菜單欄上的“助手”一欄中可以找到一些可以快捷使用的工具。
    的頭像 發(fā)表于 03-24 16:35 ?8349次閱讀

    光柵測長機(jī)測量工件外徑步驟及注意事項(xiàng)

    中圖SJ5100光柵測長機(jī)是一種可以測量工件外徑的儀器,其原理是利用比較法進(jìn)行測量。當(dāng)工件放置在測長機(jī)的測量范圍內(nèi)時(shí),通過移動(dòng)滑塊,使
    的頭像 發(fā)表于 07-20 13:35 ?996次閱讀
    光柵測長機(jī)<b class='flag-5'>測量</b><b class='flag-5'>工件</b>外徑步驟及注意事項(xiàng)

    閃測儀如何測量工件尺寸的?

    閃測儀是一種常用的測量工具,可用于測量工件的尺寸。它是一種利用圖像處理、數(shù)據(jù)分析等技術(shù)進(jìn)行尺寸測量的儀器。具有的高精度測量能力,能夠準(zhǔn)確地
    的頭像 發(fā)表于 08-15 10:31 ?1199次閱讀
    閃測儀如何<b class='flag-5'>測量</b><b class='flag-5'>工件</b>尺寸的?

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

    在超大型工件的空間測量中,激光跟蹤儀可對大尺度空間內(nèi)的點(diǎn)、線、面、曲面等幾何特征進(jìn)行精確測量;能夠根據(jù)合作目標(biāo)的精確空間姿態(tài)對被測工件的內(nèi)部
    的頭像 發(fā)表于 11-20 11:37 ?755次閱讀
    激光跟蹤儀在超大型<b class='flag-5'>工件</b>空間<b class='flag-5'>測量</b>中的應(yīng)用,你了解多少?

    幾何尺寸測量工具介紹

    傳統(tǒng)的幾何尺寸測量儀器設(shè)備包括千分尺、角度尺、游標(biāo)卡尺等,這些儀器能夠滿足一般的幾何測量需求。但是隨著科技的發(fā)展,越來越多高精度測量儀器被
    的頭像 發(fā)表于 12-26 17:16 ?1216次閱讀
    <b class='flag-5'>幾何</b>尺寸<b class='flag-5'>測量</b>工具介紹

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

    在現(xiàn)代制造業(yè)的快速發(fā)展中,復(fù)雜工件的精密測量成為了質(zhì)量控制的關(guān)鍵。隨著工業(yè)4.0的推進(jìn),自動(dòng)化技術(shù)與精密測量設(shè)備的結(jié)合,為生產(chǎn)效率和產(chǎn)品質(zhì)量的提升提供了新的解決方案。全自動(dòng)化三坐標(biāo)測量
    的頭像 發(fā)表于 08-30 16:49 ?568次閱讀
    復(fù)雜<b class='flag-5'>工件</b>的高效<b class='flag-5'>測量</b>方案:自動(dòng)化三坐標(biāo)<b class='flag-5'>測量</b>與影像<b class='flag-5'>測量</b>技術(shù)集成