Halcon 1D測量之一

2021-08-15 23:46:05 字數 1437 閱讀 4938

學習如何使用halcon進行1d測量,可以參考: 1、 halcon自帶的文件【solution_guide_iii_a_1d_measuring.pdf】2、 halcon例程【measure_switch.hdev】     

其中 【solution_guide_iii_a_1d_measuring.pdf】,第一章以halcon例程【measure_switch.hdev】為例分析了測量的過程。第二章講了測量的一些基礎知識,可以參考文章:第三章解釋了如何用測量物件來檢測邊緣、邊緣對、特定灰度值的點和灰度值分布圖,描述了如何把測量結果轉換為世界座標,第四章描述了怎麼解決更加複雜的測量問題。

下面是【solution_guide_iii_a_1d_measuring.pdf】 第二章測量的一些基礎知識的一部分內容:

第一步畫出乙個矩形或扇形的roi(測量物件),然後在roi內畫出等距離的、長度與roi寬度一致的、垂直於roi的輪廓線(profile line)的等距線。

第二步算出每一條等距線的平均灰度值,可以得出輪廓線的灰度直方圖。

如果等距線不是垂直或水平的,那麼等距線經過的就不是乙個完整的畫素,需要進行插值處理。構建測量物件的運算元(如gen_measure_rectangle2)的引數interpolation可以決定插值的方法, 設定interpolation = 』nearest_neighbor』則取最近畫素的灰度值,這種方法速度最快,但精度低,設定interpolation = 』bilinear』採用雙線性插值法,這種方法精度最高但是速度最慢。

等距線的長度,也就是roi的寬度影響了輪廓線垂直方向上的平均灰度值。因此,如果我們想要檢測的邊緣垂直於輪廓線的話,roi的寬度盡量打,否則,盡量小。如果邊緣不垂直於輪廓線,獲取到的灰度直方圖會含有較多雜訊,檢測到的邊緣會不那麼準確。

第三步用高斯濾波器平滑灰度直方圖,測量運算元(如measure_pairs)的引數sigma指定了高斯濾波器的標準差。

第四步求出平滑灰度直方圖的一階導數,一階導數的極值點作為邊緣的候選點,候選點均為亞畫素精度,只有一階導數極值點的絕對值大於預先設定的閾值(測量運算元的引數threshold)邊緣候選點才被選作為邊緣中心點。測量運算元最後得到每一條邊緣與輪廓線的交點。

下面是【solution_guide_iii_a_1d_measuring.pdf】 第三章使用測量物件的一部分內容:

transition =』positive』時,只返回從暗到亮的邊。transition = 』all』時,返回所有的邊。

如果找到具有相同轉換的多於乙個的連續邊緣,則將第乙個邊緣用作對元素。

首先建立乙個只包含最長齒距線的測量物件,再通過運算元measure_projection算出灰度直方圖。

Halcon 1D測量之二

平滑得到的灰度直方圖 sigma 0.3 create funct 1d array grayvalues,function 將離散的灰度值連成函式 smooth funct 1d gauss function,sigma,smoothedfunction 對平滑後的灰度直方圖進行求導 deriva...

Halcon 2D測量之一

通過2d測量可以獲取一些特徵,如 物體的範圍,也就是說組成物體的畫素陣列 物體的方向 物體間或者物體組成部分間的角度 物體的位置 物體的尺寸 也就是說他的寬度高度或者物體間的距離,物體組成部分間的距離 物體的個數 分析measure metal part first example.hdev例程 第...

Halcon一維測量 直線測量

1 測量直線對距離的運算元 gen measure rectangle2 measure pairs gen measure rectangle2 row,column phi length1 length2 width height interpolation measurehandle 獲取測量...