Halcon:PCB缺陷检测
圖像處理結果:
主要思想:
*Blob+差分+特征
Blob:使用灰度值的開運算圖像A,使用灰度值的閉運算圖像B
差分:A-75>B,選擇其中暗的,A+75<B,選擇其中亮的
特征:可以再使用面積這樣的參數進行篩選
*對于打光要求很高,背景要求高,要光照穩定
*讀取圖像
read_image (Image, ‘pcb’)
*關閉窗口
dev_close_window ()
*獲取讀取圖像的寬高
get_image_size (Image, Width, Height)
*打開窗口
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
*顯示圖像
dev_display (Image)
*灰度腐蝕,或者開運算,會讓暗的像素點增多
*灰度膨脹,或者閉運算,會讓亮的像素點增多
灰度圖像的開運算,八角形,77的卷積,輸入圖像Image,輸出圖像ImageOpening。
*能看出本來斷開的白色區域,被連起來了,白色缺口區域變成了黑色區域
*本來凸起的小黑色區域,變大了
gray_opening_shape (Image, ImageOpening, 7, 7, ‘octagon’)
灰度圖像的閉運算,八角形,77的卷積,輸入圖像Image,輸出圖像ImageClosing。
*能看出本來斷開的白色區域,斷的更開了,白色小缺口變成了大缺口
*本來凸起的小黑色區域,變小了
gray_closing_shape (Image, ImageClosing, 7, 7, ‘octagon’)
*動態閾值分割,因為選擇的參數是’not_equal’,所以相當于既選擇了亮的,也選擇了暗的
*后一張圖片的某一點,該點像素的灰度值-75>第一張圖的像素灰度值。說明提取圖像中暗的部分
*后一張圖片的某一點,該點像素的灰度值+75<第一張圖的像素灰度值。說明提取圖像中亮的部分
*對比的時候,是從上往下,從左往右,每一個像素值都進行比較
dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, ‘not_equal’)
dev_display (Image)
dev_set_color (‘red’)
dev_set_draw (‘margin’)
dev_display (RegionDynThresh)
對應示例程序:
pcb_inspection.hdev
總結
以上是生活随笔為你收集整理的Halcon:PCB缺陷检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 完美解决com.google.proce
- 下一篇: 打破AI算力成本困局 趋动科技即将重磅发