ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-25 22:00:38  阅读:344  来源: 互联网

标签:set 界面 QT dev halcon window 瓶盖 message Row


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有