天天看點

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

基恩士LJ-X系列線雷射

  • 1. 基恩士硬體和軟體的調試
    • 1.1 下載下傳并安裝軟體 LJ-X Navigator 和 LJ-X Observer
    • 1.2 将控制器與電腦連接配接,接上24V電源就可以使用了。
    • 1.3 通信連接配接
    • 1.4 實時設定
    • 1.5 批處理之後用Observer打開
    • 1.6 軟體中有圖像補正,測量等功能,比較簡單。
  • 2. Halcon處理高度圖
    • 2.1 尋找圓周焊中漏焊的區域
    • 2.2 Halcon代碼
  • 3. 資源下載下傳位址

1. 基恩士硬體和軟體的調試

1.1 下載下傳并安裝軟體 LJ-X Navigator 和 LJ-X Observer

下載下傳 | 基恩士中國官方網站 (keyence.com.cn)

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址
3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

1.2 将控制器與電腦連接配接,接上24V電源就可以使用了。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

1.3 通信連接配接

打開LJ-X Navigator ,選擇設定——PC通信設定,彈出下面對話框:現在的IP位址是192.168.0.1,需要把電腦對應的端口IP設定在同一個字段。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址
3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

1.4 實時設定

點選實時設定彈出對話框

分三步走:

一. 觸發設定,設定采樣周期,觸發間距,批處理點數;

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

二. 拍攝設定,測量範圍包括X方向和Z方向,相當于感興趣區域,盡量把輪廓線調整到中間位置。需要注意的是,點選圖像連續更新才會實時采集圖像。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

Z方向範圍和曝光模式都會影響采樣頻率,LJ-X的測量速度是60mm/s。這些都設定完成後點選完成。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

1.5 批處理之後用Observer打開

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

1.6 軟體中有圖像補正,測量等功能,比較簡單。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

需要注意的是,這個軟體隻能打開.lhix檔案,但是儲存的檔案格式有多種,如果halcon可以處理TIFF檔案,選擇這個格式會儲存兩張圖像,一張是高度圖,而另一張是亮度圖。

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

2. Halcon處理高度圖

2.1 尋找圓周焊中漏焊的區域

3D視覺——基恩士LJ-X系列線雷射1. 基恩士硬體和軟體的調試2. Halcon處理高度圖3. 資源下載下傳位址

2.2 Halcon代碼

*圓周焊方法1
detect_col:=1068
detect_row:=100
detect_phi:=0
detect_length1:=2
detect_length2:=2
detect_offset:=-96

std1_col:=100
std1_row:=100
std1_phi:=0
std1_length1:=2
std1_length2:=2
std1_offset:=-105

std2_col:=100
std2_row:=100
std2_phi:=0
std2_length1:=2
std2_length2:=2
std2_offset:=-80

set_display_font (3600, 26, 'mono', 'true', 'false')
dev_update_off ()

for Index1 := 1 to 38 by 1
    *讀取高度圖
    read_image (Image1,'漏焊'+Index1)
    *讀取亮度圖
    read_image (Image1ngLuminance, '漏焊'+Index1+'_luminance')
    *分割電池區域圖像
    threshold (Image1, Regions, 2756, 65535)   
    fill_up (Regions, RegionFillUp)
    reduce_domain (Image1, RegionFillUp, ImageReduced)   
    *得到電池邊緣區域
    boundary (RegionFillUp, RegionBorder, 'inner')
    *電池區域的最小外接矩形   
    smallest_rectangle1 (RegionBorder, Row1, Column1, Row2, Column2)
    *區域差集得到電池上蓋闆邊緣區域
    gen_rectangle1 (Rectangle1, Row1-1, Column1-1, Row1+1, Column2+1)
    gen_rectangle1 (Rectangle2, Row2-1, Column1-1, Row2+1, Column2+1)
    difference (RegionBorder, Rectangle1, RegionDifference)
    difference (RegionDifference, Rectangle2, RegionDifference2)
    connection (RegionDifference2, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, 'column', 'and', 14.4, 500)    
    *擷取上蓋闆邊緣區域中所有點坐标
    get_region_points (SelectedRegions, Rows, Columns)
    *對高度圖做一次均值濾波,可以屏蔽
    mean_image (Image1, ImageMean, 1, 1)
    get_image_size (Image1, Width, Height)
    
    
    meanDetect:=[]
    meanStd1:=[]
    meanStd2:=[]
    meanDifference:=[]
    deviation_detect:=[]
    gen_empty_obj (detect_rect) //測量矩形
    gen_empty_obj (std1_rect)   //基準1矩形
    gen_empty_obj (std2_rect)   //基準2矩形
    
    
    for I := 0 to |Columns|-1 by 1      
        *建立測量矩形
        gen_rectangle2 (Rect_dectect, detect_row+I*1,Columns[I]+detect_offset, detect_phi,detect_length1, detect_length2)
        *計算測量矩形内所有點平均高度值
        intensity (Rect_dectect, ImageMean, Mean_dectect, Deviation1)
        
        *建立基準1矩形
        gen_rectangle2 (Rect_std1, std1_row+I*1,Columns[I]+std1_offset, std1_phi,std1_length1, std1_length2)
        *計算測量矩形内所有點平均高度值
        intensity (Rect_std1, ImageMean, Mean_std1, Deviation2)
        
        *建立基準2矩形
        gen_rectangle2 (Rect_std2, std2_row+I*1,Columns[I]+std2_offset, std2_phi,std2_length1, std2_length2)
        *計算測量矩形内所有點平均高度值
        intensity (Rect_std2, ImageMean, Mean_std2, Deviation2)

        *判斷是否漏焊
        if ((Mean_std1 + Mean_std2)/2 > Mean_dectect + 20)
            concat_obj (Rect_dectect, detect_rect, detect_rect)
            concat_obj (Rect_std1, std1_rect, std1_rect)
            concat_obj (Rect_std2, std2_rect, std2_rect)
        endif  
    endfor
    
    union1 (detect_rect, RegionUnion)
    dilation_rectangle1 (RegionUnion, RegionDilation, 1, 1)
    *顯示亮度圖是為了便于觀察
    dev_display (Image1ngLuminance)
    dev_display (RegionDilation)

    dev_set_draw ('fill')
    dev_display (RegionDilation)

    
    disp_message (3600, Index1, 'window', 12, 12, 'black', 'true')
    stop()
endfor

dev_update_on ()

           

3. 資源下載下傳位址

包括圖像資源,代碼資源。

https://download.csdn.net/download/weixin_38566632/24413279

繼續閱讀