您现在的位置是:首页 >技术杂谈 >Halcon与Qt联合编程方法二(C++版本)网站首页技术杂谈

Halcon与Qt联合编程方法二(C++版本)

小任同学Alex 2024-06-14 17:17:26
简介Halcon与Qt联合编程方法二(C++版本)

上一篇文章中提到基于python实现Halcon与Qt联合编程,但是在实际开发中,比如说已经有了qt编写的c++版软件进行算法迭代,或者已经有了halcon编写的(.hdev文件)算法,想进行软件封装,这时候可以考虑把halcon编写的.hdev文件转化成.cpp文件,然后基于qt实现联合编程。

一、安装qt与halcon(这个有大量教程,注意安装qt时选择mscv版本)

二、编写.hdev文件的halcon算法

三、QT中导入halcon相关依赖
1、新建qt工程,编译器选择mscv
2、在工程根目录下新建include文件夹,将halcon安装目录下的include文件夹中的所有文件复制到工程根目录下新建include文件夹下

在这里插入图片描述
2、在工程根目录下新建lib文件夹,将halcon安装目录下的lib文件夹中的x64-win64文件夹复制到工程根目录下新建lib文件夹下

在这里插入图片描述

在这里插入图片描述
4、在工程的.pro文件中添加如下内容
在这里插入图片描述
#-----------------------添加进.pro工程文件-----------------
#-----------------------QT与halcon联合编程配置-------------
INCLUDEPATH += P W D / i n c l u d e I N C L U D E P A T H + = PWD/include INCLUDEPATH += PWD/includeINCLUDEPATH+=PWD/include/halconcpp

LIBS += P W D / l i b / x 64 − w i n 64 / h a l c o n c p p . l i b L I B S + = PWD/lib/x64-win64/halconcpp.lib LIBS += PWD/lib/x64win64/halconcpp.libLIBS+=PWD/lib/x64-win64/halcon.lib

5、在mainwindow.h头文件中添加如下内容
在这里插入图片描述
#include “halconcpp/HalconCpp.h”
#include “Halcon.h”
#include <HDevThread.h>

using namespace HalconCpp;

此时,QT中导入halcon完成

四、halcon文件转.cpp文件
halcon中选择文件-导出语言,选择c++文件
在这里插入图片描述
目前来说,总共支持4种格式的导出方式,分别是c文件、cpp文件、vb文件、c#文件。需要的同学可以在这四种中导出自己熟悉的语言。这里我们导出为.cpp文件。

五、下面进行联合编程
在头文件中,把上面halcon转化的.cpp文件中的halcon各种变量复制粘贴进头文件进行声明,例如Hlong、Hobject、Htuble等,以及disp_message 、disp_message 等函数名进行声明(这里和你自己的代码相关,都在转化的.cpp文件中)
在这里插入图片描述
在.ui中建立两个按钮和一个QGraphicsView
在这里插入图片描述
把halcon转化的.cpp文件中void action()中除变量的代码复制进去(因为变量已经在头文件中声明了)
在这里插入图片描述
我这里的软件有两个功能,一个是打开图片,一个是检测图片,源码都是在halcon转化的.cpp文件中void action()中选择粘贴,也就是说,void action()是转化的算法具体内容,可以选择不同的部分贴如qt中的函数,我这里把void action()中打开图片和检测图片分别写入两个按钮的函数中

在这里插入图片描述
在这里插入图片描述

halcon转化的.cpp文件中除void action()的函数如下图所示,也要贴在qt的mainwindow.cpp文件中,因为在按钮函数中会调用,这些函数在头文件中需要声明下,在前面提到过
在这里插入图片描述
在这里插入图片描述

代码工作到这里结束了

六、编译运行,结果如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。