halcon邊緣檢測的方法及各種方法的適用範圍

2021-09-09 04:37:23 字數 1521 閱讀 8915

1、設定roi興趣區域

2、快速二值化,並連線相鄰區域。

這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來

3、提取最接近目標區域的輪廓

常用函式有boundary,gen_contour_region_xld

4、根據自己的需求提取需要的初步輪廓

5、將初步提取的初步輪廓進行膨脹操作

6、將膨脹後的區域和原圖進行減操作(在這步之前有可能需要對原圖進行高斯濾波)。這樣就能得到只

有邊緣的真實影象

7、用canny或其他運算元(根據需要)提取亞畫素輪廓,一般使用edges_sub_pix函式

8、處理和計算

得到真實的邊緣xld後你可能需要進一步處理得到你想要的線、弧等。

你可能用到的函式segment_contours_xld(分割)  union_collinear_contours_xld(聯合相鄰或相同

角度直線)select_contours_xld(提取想要的輪廓) union_cocircular_contours_xld(聯合相同圓)

等等得到輪廓後如果你不知道怎麼處理後得到你想要的東西(線、弧、圓、角、矩形)你都可以將輪廓轉化

為點,然後用點集合來擬合任何你想要的東西。

(1)應用roi,可以使blob分析加速。

(2)匹配roi區域或影象,詳將guideiib以形狀為基礎的匹配。

(3)校正影象《經常用來去除鏡頭畸變或把影象轉換到參考點視角,如雙目視覺時的影象校正》

(4)影象前處理

(5)引用分割引數

(6)分割影象

(7)區域處理

(8)特徵提取

(9)把提取的結果轉換到世界座標中

(10)結果視覺化。

相機的標定和矯正不在本篇的學習之中。直接講提取blob

1、一般先使用均值濾波去噪

2、利用去噪影象與平滑影象的offset提取區域邊緣,常見函式dyn_threshold 

3、提取連通域dyn_threshold 

4、根據形狀或是灰度等特徵來提取你想要的blob。

另一種方法就是分水嶺演算法

watersheds (imagegauss, basins, watersheds)/

1、對影象進行高斯濾波

還有的圖形更簡單直接二值化就可以啦

bin_threshold (fin, dark) //分割影象,輸出dark區域,fin已經被處理為區域//

difference (fin, dark, background) //計算fin與dark兩個區域的補集//

還有個函式應該說是讓你高興還是沮喪呢,以為乙個函式就可以直接提取你想要的,但是引數很難調整

lines_gauss(image, lines, 6, 0.3, 0.5, 'light', 'true', 'gaussian', 'true')

1、得到兩個不同高斯標準差的高斯積卷

2、對原始影象進行傅利葉變換'to_fre'

3、用之前的積卷對影象做積卷濾波

4、傅利葉反變換『from_fre』

halcon邊緣檢測的方法及各種方法的適用範圍

1 設定roi興趣區域 2 快速二值化,並連線相鄰區域。這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來 3 提取最接近目標區域的輪廓 常用函式有boundary,gen contour region xld 4 根據自己的需求提取需要的初步輪廓 5 將初步提取的初步輪廓進行膨...

Halcon 邊緣檢測運算元詳解

1.1 種類 halcon內常用的邊緣檢測運算元包括如下幾種 1.edges image 提取2d 影象邊緣 2.edges sub pix 提取2d影象亞畫素邊緣 3.edges object model 3d 提取3d影象邊緣 4.edges color和edges color sub pix ...

邊緣檢測 兩種方法實現

import cv2 import numpy from scipy import ndimage def strokeedges src,dst,blurksize,edgeksize src numpy.array src yuansrc src dst numpy.array dst if b...