其他分享
首页 > 其他分享> > halcon:(5)瓶盖检测以及QT界面搭建

halcon:(5)瓶盖检测以及QT界面搭建

作者:互联网

halcon实现瓶盖检测与定位代码:

dev_close_window()
dev_open_window(0, 0, 1024, 1024, 'black', WindowHandle)
list_image_files('C:/Users/TIMI/Desktop/picture/circle', 'default', [], ImageFiles)
for  J := 1 to 4 by 1
    *read image 
    read_image(halconImage, ImageFiles[J-1])
    *read_image(halconImage,'C:/Users/TIMI/Desktop/srcImage/bord'+J$'01d'+'.png')
 
     *find circle(这一部分是要封装的处理过程)
     *1、三通道转化为单通道
    decompose3(halconImage,RImage,GImage,BImage)
     *2、二值化
    threshold (RImage, Regions,0, 171)
    *填充(目的是干嘛?)
    dev_set_draw('margin')
    fill_up(Regions, RegionFillUp)
    *形态学处理
    opening_circle(RegionFillUp, RegionOpening, 3.5)
    *连通处理
    connection(RegionOpening, ConnectedRegions)
    *特征选择
    select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [110351,0.83981], [199445,1])
    *区域中心
    area_center(SelectedRegions, Area, Row, Column)
    *显示中心
    dev_set_color('red')
    gen_cross_contour_xld(Cross, Row, Column, 16, 0.78)
    
    *打印信息(这一部分是要封装的结果展示)   
     tuple_length(Row,RowLength)
   * 有效值
     if(RowLength==1  and Row!=0)
    
        dev_set_draw('margin')
        dev_clear_window()
        dev_display(halconImage)
        dev_set_line_width(1)
        dev_set_color('green')
        dev_display(Cross)
        dev_set_line_width(3)
        dev_set_color('green')
        dev_display(SelectedRegions)
        message[0]:=' The '+J  +' in ' +4
        message[1]:='Find board in position '+'Row:='+ Row +' Column:='+Column
        disp_message(WindowHandle, message, 'window',10, 10, 'green', 'false')
    else
        message[0]:=' The '+J  +' in ' +4
        message[1]:='识别错误  error !'
        disp_message(WindowHandle, message, 'window',130, 10, 'green', 'false')
    endif
      
endfor

原始图片与图左;结果展示如图右。

  

 ------------------下边参照博客进行界面搭建。

https://blog.csdn.net/m0_37957160/article/details/119003705?spm=1001.2014.3001.5501

最终搭建的简单界面如下:

完整大QT界面搭建步骤:

1、添加库函数。包括include和lib的添加。

2、界面设计。

3、halcon的代码封装与导出。

4、图片显示在界面上。

5、构建一个类,存放图像处理的代码。

6、滚轮的放大与缩小

7、添加按钮,在图像上进行绘图操作。以及添加资源(即以一个图片作为按钮的背景。)

8、参数与界面进行关联。

9、管理参数。(一般使用结构体或者Qsetting)

第一步:QT工程建立。

第二步:各个模块类的添加。

在主窗口的.h内添加类的头文件,并定义一个指针指向类。

在主窗口的.cpp的构造函数内初始化指针。

第三步:ui界面设计。

第四步:绑定窗口。

第五步:各个button转到槽,添加变量,头文件内函数声明,源

完整大QT界面以及代码见链接:

https://download.csdn.net/download/m0_37957160/20464695

 

 

 

标签:set,界面,QT,dev,halcon,window,瓶盖,message,Row
来源: https://blog.csdn.net/m0_37957160/article/details/119058021