项目进行到第四天,我们学到了很多,可以进行实操。

机器视觉——物块分拣_机器视觉

首先我们利用相机软件进行采图

机器视觉——物块分拣_机械臂_02

然后导入代码里面

机器视觉——物块分拣_机器视觉_03

完整代码

dev_get_window (WindowHandle)
list_image_files ('采图', 'default', [], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    * Image Acquisition 01: Do something
    decompose3 (Image, ImageR, ImageG, ImageB)
    *分割正面的物块
    
    threshold (ImageR, Region, 72, 130)
    connection (Region, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions,\
                  'area', 'and', 30000,45000)
    count_obj (SelectedRegions, Number)
    dev_display (Image)
    if (Number != 0)
        * 正面
        result:='OK'
        color:='green'
        area_center (SelectedRegions, Area, Row, Column)
        gen_cross_contour_xld (Cross, Row, Column, 50, 0.785398)
        smallest_rectangle2 (SelectedRegions, Row1, Column1, Phi, Length1, Length2)
        gen_rectangle2_contour_xld (Rectangle, Row1, Column1, Phi, Length1, Length2)
        dev_set_line_width(5)
        dev_display (Rectangle)
        dev_display (Cross)
    else
        * 反面
        result:='NG'
        color:='red'
    endif
    disp_message (WindowHandle, result, 'window', 12, 12, color, 'true')
    stop()
endfor

里面不懂的代码,其实前面已经提过了,这里不再多说。

接着使用VS2022打开工程文件

机器视觉——物块分拣_Image_04

打开机械臂控制软件并进行连接

机器视觉——物块分拣_Cross_05

运行代码

机器视觉——物块分拣_Cross_06

最终实现机械臂自动抓取物块(正面朝上的物块)

机器视觉——物块分拣_Cross_07