使用halcon進行缺陷檢測

一、halcon缺陷檢測的方法

1、主要是基於halcon軟件提供的圖像處理工具,來進行缺陷檢測。其具體方法如下:

  a、圖像預處理:首先對圖片進行處理,如去噪、增強、二值化等。

  b、特徵提取:通過對圖像進行特徵提取,得出不同的特徵值,可以有效分類和區分缺陷。

  c、分類識別:根據之前提取的特徵值來進行分類識別,將圖像判別為有缺陷或無缺陷。

  d、最終輸出:將判別結果輸出,同時對於有缺陷的地方進行標註,便於後續處理。

二、halcon缺陷檢測實例轉opencv實現

1、halcon與opencv都是常用的圖像處理庫,halcon提供的操作函數與opencv的略有不同。我們可以將halcon的缺陷檢測實例轉化為opencv的代碼實現。

2、例如halcon實現的二值化操作:

dev_set_color ('green')
dev_display (Image)
threshold (Image, Region, 128, 255)
dev_set_color ('red')
dev_display (Region)

可以在opencv中轉化為:

Mat gray, binary;
cvtColor(inputImage, gray, COLOR_BGR2GRAY);
threshold (gray, binary, 128, 255, THRESH_BINARY);
imshow("result", binary);

三、halcon缺陷檢測基本步驟

1、圖像預處理:包括去噪、增強等操作。

median_image (Image, ImageMedian, 'circle', 3)
dyn_threshold (ImageMedian, RegionDynThresh, 10, 'dark')

2、特徵提取:對圖像的特徵進行提取。

connection (RegionDynThresh, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 99999999)

3、分類識別:用已經提取的特徵進行缺陷分類。

gen_classifier_ensemble (PositiveFeatures, NegativeFeatures, ClassifierHandle, 'hidden_layers=10,scale_factor=1.0')
apply_classifier_ensemble (SelectedFeatures, ClassifierHandle, 'default', Result)

4、最終輸出:對於有缺陷的位置進行標註,並輸出檢測結果。

dev_set_color ('red')
dev_display (SelectedRegions)
disp_message (WindowHandle, 'Defect detected', 'window', 12, 12, 'red', [], [])

四、halcon缺陷檢測例程

1、下面給出一個簡單的halcon缺陷檢測例程,對紙張的劃痕進行檢測。

read_image (Image, 'paper_scratch.jpg')
median_image (Image, ImageMedian, 'circle', 3)
dyn_threshold (ImageMedian, RegionDynThresh, 10, 'dark')
connection (RegionDynThresh, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
gen_features_object_generic (SelectedRegions, Image, Features, 'border_origin', [1,1],[0,0.5],[],0)
gen_classifier_ensemble (PositiveFeatures, NegativeFeatures, ClassifierHandle, 'hidden_layers=10,scale_factor=1.0')
apply_classifier_ensemble (Features, ClassifierHandle, 'default', Result)
dev_set_color ('red')
dev_display (SelectedRegions)
disp_message (WindowHandle, 'Defect detected', 'window', 12, 12, 'red', [], [])

五、halcon缺陷檢測實例

1、鋁製品表面缺陷檢測:

  a、圖像預處理:使用思路與前面的例子類似,但這裡的圖像規模更大,需要使用更先進的圖像處理技術。

read_image (Image, 'aluminum_defects.jpg')
rgb1_to_gray (Image, GrayImage)
dyn_threshold (GrayImage, RegionDynThresh, 20, 'light')
connection (RegionDynThresh, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 1000)

  b、特徵提取:鋁質產品的特徵與紙張自然有所不同,需要特別處理。

for i:=1 to Hv_Edim1(SelectedRegions)
    region_features (SelectedRegions[i], GrayImage, ['rectangularity','convexity'], FeatureVector)
    select_obj (SelectedRegions, SelectedRegion, i)
    set_object_features (SelectedRegion, FeatureVector, ['rectangularity','convexity'])
endfor
feature_reduction (PositiveFeatures, NegativeFeatures, 'pca', AdaboostHandleReducedFeatures, 3)

  c、分類識別:分類識別過程中使用了adaboost算法。

gen_classifier_adaboost (AdaboostHandleReducedFeatures, 'auto', num_steps, ClassifierHandle)
apply_classifier_feature_set (ClassifierHandle, GrayImage, ['rectangularity','convexity'], 'default', Result)

  d、最終輸出:將檢測結果輸出,並進行標註。

if Hv_Elem(Result, 1) = 1.0 then
    gen_rectangle1 (Rectangle1, Rows, Cols, Rows + Height, Cols + Width)
    dev_set_color ('red')
    dev_display (Rectangle1)
    disp_message (WindowHandle, 'Defect detected', 'window', 12, 12, 'red', [], [])
endif

六、halcon缺陷檢測基本流程

1、首先進行圖像預處理,並將圖像進行二值化。

2、然後對圖像特徵進行提取,不同的缺陷類型需要提取的特徵不同。

3、接着對已經提取的特徵進行分類識別,將不同的缺陷分類。

4、最後輸出檢測結果,並對有缺陷的部位進行標註,方便後續處理。

七、halcon劃痕檢測

1、劃痕缺陷是指物體表面因受到外力導致刮痕等狀況的缺陷。檢測劃痕缺陷需要對圖像進行預處理、濾波、二值化等步驟,然後利用特徵提取算法和分類識別技術進行檢測。

2、下面給出一個halcon劃痕檢測的例程。

read_image (Image, 'scratch.jpg')
median_image (Image, ImageMedian, 'circle', 3)
dyn_threshold (ImageMedian, RegionDynThresh, 10, 'dark')
connection (RegionDynThresh, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
gen_features_object_generic (SelectedRegions, Image, Features, 'border_origin', [1,1],[0,0.5],[],0)
gen_classifier_ensemble (PositiveFeatures, NegativeFeatures, ClassifierHandle, 'hidden_layers=10,scale_factor=1.0')
apply_classifier_ensemble (Features, ClassifierHandle, 'default', Result)
dev_set_color ('red')
dev_display (SelectedRegions)
disp_message (WindowHandle, 'Defect detected', 'window', 12, 12, 'red', [], [])

八、halcon目標檢測

1、halcon可以用來進行目標檢測,因為目標檢測也可以看作是一種缺陷檢測。但與其他類型的缺陷檢測不同,目標檢測需要經過更多的特徵提取、特徵匹配等步驟。

2、下面給出一個halcon目標檢測的例程。

read_image (Image, 'object.jpg')
reduce_domain (Image, ImageReduced, Region)
mean_image (ImageReduced, MeanImage, 5, 5)
subtract_image (ImageReduced, MeanImage, SubImage, 1, 0)
abs_image (SubImage, AbsImage)
dyn_threshold (AbsImage, RegionDynThresh, 20, 'dark')
connection (RegionDynThresh, ConnectedRegions)
features_object_from_image (ImageReduced, ConnectedRegions, Features, 'point_invariant', ['do_edges','convexity'])
read_features (Features, 'object_feature.tuple')
gen_classifier_knn (Features, ['num_neighbors=3'], ClassifierHandle)
classify_image_knn (Image, ObjectRect, ClassifierHandle, [], [], ObjectScore)
dev_set_color ('green')
dev_display (ObjectRect)

九、halcon表面缺陷檢測

1、表面缺陷檢測相對於其他類型的缺陷檢測,主要就是注重表面積分形態信息的提取,表面粗糙度的計算和缺陷檢測。可以通過使用halcon提供的表面缺陷檢測算法來實現。

2、下面給出一個halcon表面缺陷檢測的例程。

read_image (Image, 'surface.jpg')
gradient_image (Image, GradientAmplitude, GradientDirection, 'advanced', 'bilinear')
regiongrowing_gray (Image, Seeds, Region, 15, 15, 5, 20, 'false', [])
open_rect1 (Region, RegionOpened, 5, 5)
erosion1 (RegionOpened, RegionEroded, 5)
difference_image (RegionOpened, RegionEroded, RegionDiff)
laplace_of_gaussian (Image, LoGImage, 3)
dyn_threshold (LoGImage, RegionEdge, 5, 'not_dark')
intersection (RegionEdge, RegionDiff, RegionEdgeReduced)

以上是halcon缺陷檢測的一些方法、步驟、例程等介紹,希望能對讀者有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/201266.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-06 11:31
下一篇 2024-12-06 11:31

相關推薦

  • 缺陷的生命周期

    一、缺陷發現 1、缺陷的定義與分類 缺陷是指軟件產品或系統在設計、開發、測試、運行等階段中存在的問題或錯誤。可以按照不同的維度進行分類,例如按照影響程度、重要性、優先級等。 2、缺…

    編程 2024-12-24
  • Halcon算子詳解

    一、Halcon算子介紹 Halcon算子是在Halcon軟件中用於圖像處理和分析任務的基本操作單元。它們代表了一個塊式操作,每一個塊式操作接收輸入圖像並且產生輸出圖像或其他結果(…

    編程 2024-12-17
  • Halcon教程詳解

    一、介紹 HACON是由奧地利MVTec Software GmbH公司開發的一款計算機視覺軟件庫,它可以實現圖像分析、處理以及工業自動化等功能。Halcon的應用領域非常廣泛,包…

    編程 2024-12-12

發表回復

登錄後才能評論