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 ' +4message[1]:='Find board in position '+'Row:='+ Row +' Column:='+Columndisp_message(WindowHandle, message, 'window',10, 10, 'green', 'false')elsemessage[0]:=' The '+J  +' in ' +4message[1]:='识别错误  error !'disp_message(WindowHandle, message, 'window',130, 10, 'green', 'false')endifendfor

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

  

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

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转到槽,添加变量,头文件内函数声明,源

第六步:把显示函数里边if的窗口删除掉,并把窗口参数HDevWindowStack::GetActive()

改为WindowHandle。

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

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

halcon与QT联合:(5.1)瓶盖检测以及QT界面搭建相关推荐

  1. halcon与QT联合:(5.3)瓶盖检测以及QT界面搭建

    接着上篇博客的添加资源之后,本次要实现的是鼠标的滚轮功能图片的缩放. 在QT代码中中文乱码的处理方法: qDebuge()<<QString::fromLocal8Bit("这个 ...

  2. halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建

    目录 1.添加按钮.添加资源 1.1添加那妞 1.2.添加资源 1.2.1.准备资源文件 1.2.2.添加资源文件 1.2.3.添加对应的资源代码 在上一个博客5.1中只是做了一个简单的界面,下面我们 ...

  3. halcon与QT联合:(5.4)瓶盖检测以及QT界面搭建

    接着上篇博客的鼠标滚轮事件之后,本次要完成的是基于结构体的变量管理以及如何让参数与界面进行关联. ---------------------------------1.下面实现的是变量管理------ ...

  4. 【机器视觉】Qt联合Halcon编程之显示多图片

    00. 目录 文章目录 00. 目录 01. 概述 02. 编写Halcon程序 03. Halcon程序导出C++文件 04. 创建Qt图形界面项目 05. Qt集成Halcon程序 06. 附录 ...

  5. 【机器视觉】Qt联合Halcon编程之显示图片

    00. 目录 文章目录 00. 目录 01. 概述 02. 编写Halcon程序 03. Halcon程序导出C++文件 04. 创建Qt图形界面项目 05. Qt集成Halcon程序 06. 附录 ...

  6. 基于halcon与c#联合的视觉处理软件

    1.视觉软件 当我们拿到一个视觉项目,如果有一个拖拽式视觉软件去帮我们完成这样一个项目,既省时又省力,学什么halcon.opencv.visionpro,甚至头疼的C++.C#,统统不需要,也能快速 ...

  7. 360度内环镜、内螺纹检测镜头、瓶盖检测镜头以及超中心镜头

    用于孔洞状物体的360°内部成像 提示: 内孔检测光学镜头 从外部检查腔内: 无需在孔洞内放置光学探头: 带孔对象的360度对焦: 腔体内壁和底部都可以实现高分辨率成像: 景深可使同一个镜头拍摄具有不 ...

  8. 第二讲:C#与halcon联合环境配置,halcon代码导出与软件界面搭建

    一,c#与halcon联合环境配置 1.首先将找到你的halco安装目录,然后在目录下找到两个文件,halcon.dll与halcondotent.dll如下: 2.用vs2019创建一个C#窗体项目 ...

  9. HALCON示例程序measure_circuit_width_lines_gauss.hdev电路板线宽检测

    HALCON示例程序measure_circuit_width_lines_gauss.hdev电路板线宽检测 示例程序源码(加注释) 关于显示类函数解释 dev_update_off () dev_ ...

最新文章

  1. Stones HDU 1896
  2. python的16.1节课后练习16-2比较希特卡和死亡谷的气温的问题,最后图像为什么出现乱码?
  3. windows虚拟声卡直播_【韭菜爱镰刀】高性价比的录音/直播设备推荐
  4. Java创建对象小结
  5. 几种关系型数据库比较
  6. Java七大设计模式原则(附相关电子图书下载)
  7. Python3 PyV8“安装与使用”教程
  8. DOS获取注册表键值
  9. lgv30刷android10,记一次LG V30系列手机完美刷入MIUI12系统和Flyme刷机教程
  10. KONG 之 rate-limiting
  11. Facebook Bows to Pressure Over Privacy
  12. m计算机基本拓扑结构,计算机网络的拓扑结构
  13. Linux下Nginx的卸载、安装以及基本使用
  14. 入选数据库顶会 VLDB:如何有效降低产品级内存数据库快照尾延迟?
  15. 【CISSP备考笔记】第1章:安全与风险管理
  16. HTTPS、SSL、TLS三者之间的联系和区别
  17. 完全卸载 Nodejs
  18. 谷粒商城高级篇之ik分词器
  19. 二维向量的叉积是标量还是向量?
  20. 如何设置从U盘启动安装win7系统

热门文章

  1. 2021年大数据ELK(六):安装Elasticsearch
  2. Django 布署6.5
  3. DCN-2655 gre隧道 vpn 嵌入IPSec配置:
  4. C++ 判断指针是否为空
  5. 云时代架构阅读笔记二——一次CPU负载超高的分析
  6. Python:通过一个小案例深入理解IO多路复用
  7. 多版本Python共存时pip给指定版本的python安装package的方法
  8. android使用webview时按后退退出的问题
  9. Maven(插件配置和生命周期的绑定)
  10. 经常使用ARM汇编指令