Halcon 餅乾缺陷檢測

2021-10-14 00:13:58 字數 2071 閱讀 5462

使用的主要是blob+特徵的方式

blob用於定位

特徵:這裡主要使用的是區域所佔的面積數

和矩形度兩個指標。

因為面積數是個經驗值,所以上面有些ng和ok是很接近的。

*讀取read_image (image, 『food/hazelnut_wafer_01』)

*關閉視窗

dev_close_window ()

*開啟乙個視窗,視窗大小和剛剛讀取的影象尺寸一致

dev_open_window_fit_image (image, 0, 0, -1, -1, windowhandle)

*設定線寬3畫素

dev_display (image)

dev_set_line_width (3)

dev_set_draw (『margin』)

*設定字型的大小等引數

set_display_font (windowhandle, 20, 『mono』, 『true』, 『false』)

*for index := 1 to 24 by 1

*一共需要處理24張,乙個乙個的讀取

read_image (image, 『food/hazelnut_wafer_』 + index$』.02』)

*用二進位制閾值來分割影象。『smooth_histo』:直方圖平滑,『light』獲取其中亮的部分。usedthreshold輸出的閾值。下面暫時沒有用到這個輸出閾值

binary_threshold (image, foreground, 『smooth_histo』, 『light』, usedthreshold)

*對於已經提取到的區域,做開運算,可以理解為將半徑<8.5畫素的區域去除掉

opening_circle (foreground, finalregion, 8.5)

*計算區域裡面孔洞的面積,即孔洞佔多少個畫素

area_holes (finalregion, areaholes)

*計算區域的矩形度

rectangularity (finalregion, rectangularity)

dev_display (image)

*如果孔

if (areaholes > 300 or rectangularity < 0.92)

dev_set_color (『red』)

text := 『not ok』

else

dev_set_color (『forest green』)

text := 『ok』

endif

dev_display (finalregion)

disp_message (windowhandle, text, 『window』, 12, 12, 『』, 『false』)

if (index < 24)

disp_continue_message (windowhandle, 『black』, 『true』)

stop ()

endif

endfor

對應示例程式:

check_hazelnut_wafers.hdev

Halcon 藥品缺陷檢測

影象處理結果 主要思想 blob 特徵 blob 使用採集影象,做藥片板的定位,藥片格仔的定位。然後將待測影象旋轉到模板影象的區域。就可以直接使用藥片格仔的區域了。將藥片格仔區域和每次篩選出的藥片區域求交集。特徵 篩選交集的區域,如果區域 3800或者最小灰度值 60,錯誤藥片 1。如果區域為空,說...

Halcon餅乾案例

官方案例 read image image,food hazelnut wafer 01 dev close window dev open window fit image image,0,0,1,1,windowhandle dev update window off dev set line ...

利用HALCON進行瑕疵(缺陷)檢測(附原始碼)

halcon是德國mvtec公司開發的一套完善的標準的機器視覺演算法包,擁有應用廣泛的機器視覺整合開發環境。它節約了產品成本,縮短了軟體開發周期 halcon靈活的架構便於機器視覺,醫學影象和影象分析應用的快速開發。在歐洲以及日本的工業界已經是公認具有最佳效能的machine vision軟體。使用...