halcon一維檢測之刻度線精確檢測

2021-10-18 03:18:41 字數 1444 閱讀 8162

刻度線在影象中的分布比較特殊,因為刻度線通常只佔據了幾個畫素寬度,對應剖面線灰度值在幾個畫素內發生急劇變化 ,measure_projection (image, measurehandle, grayvalues),如下圖所示

對應灰度值一階導數由一下運算元計算

create_funct_1d_array (grayvalues, function)

smooth_funct_1d_gauss (function, sigma, smoothedfunction)

derivate_funct_1d (smoothedfunction, 'first', firstderivative)

如下圖所示

可以看到每個刻度線都存在兩條邊緣(負邊緣和正邊緣),刻度線位置可近似認為是一階導數過零點。由於雜訊干擾,一階導數過零點非常多。

對應的二階導數如下圖所示

真正的刻度線位置處二階導數為區域性最大值,可通過對二階導數的閾值篩選進行相關操作從而篩選出真正的刻度線中心

zero_crossings_funct_1d (firstderivative, zerocrossings)

* * select the positions of those minima (i.e., positions at which the second derivative is positive)

* where the smoothed gray value profile has a high curvature, i.e., where the second derivative

*  has a large absolute value. this criterion ensures that only salient lines are selected.

minimummagnitudeofsecondderivative := 8

positionofsalientline :=

for i := 0 to |zerocrossings| - 1 by 1

get_y_value_funct_1d (secondderivative, zerocrossings[i], 'constant', y)

if (y > minimummagnitudeofsecondderivative)

positionofsalientline := [positionofsalientline,zerocrossings[i]]

endif

endfor

Halcon 一維測量

一 一維測量思路大致步驟 1.構造測量物件 建立測量區域 2.剖面線計算 做灰度值平均投影 3.剖面線光滑 消除雜訊 4.剖面線求導 5.區域性極值 邊緣 二 一維測量運算元 1.gen measure arc 2.gen measure rectangle2 3.measure pos 4.mea...

Halcon一維碼查詢

一 影象預處理和條碼增強 對比度太低 scale image 或使用外部程式scale image range 增強影象的對比度。影象模糊 emphasize銳化影象,使條碼看起來更清晰。深色背景上讀取淺色條碼 invert image反轉影象。二 解碼涉及的主要運算元 read image 讀圖 ...

Halcon一維測量 直線測量

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