C/C++教程

Halcon与QT的联合编程

本文主要是介绍Halcon与QT的联合编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1、halcon代码的封装

2、halcon代码的导出

3、halcon与QT联合编程

3.1、QT工程建立

 3.2、qt与halcon联合


1、halcon代码的封装

在对代码进行封装的时候,你一定要考虑你的输入输出是什么?

输入:图像

输出:点、矩形、2个数字。(点和矩形是为了展示给客户看的)

步骤:

(1)首先选中要封装的代码,右键创建一个新函数,进入如下界面:

一般文档里面你也可以进行描述一下信息。

初学者暂时只需要选择本地程序函数即可,下边的库函数和函数文件,就是自己定义的可以一直用他一直存在。但是本地函数他是本地的,只存在这个项目中。

图中箭头的进出分别表示参数的输入与输出。

(2)点击应用就会完成函数的封装。

(3)查看函数体的话,右键点击封装的函数,点击显示函数就会进入函数体。

(4)进入函数体之后,,可以在函数体的正上方右边的编辑当前函数的接口和文档这个按钮,进入创建函数时的界面进行编辑。

 (5)如果有一些函数不想使用可以点击halcon菜单栏中的函数菜单,

 以上就是基于halcon的函数封装部分。

2、halcon代码的导出

(导出之后再去写入QT界面)

在halcon界面的菜单栏项上选择文件---》导出语言,界面如下:

 导出之后,在上述导出文件的路径下,你就可以看到程序了,此时这个程序就和halcon没有关系了,就是独立的cpp文件了。

3、halcon与QT联合编程

3.1、QT工程建立

(可以把刚才导出的cpp程序,拖进QT中看一下--------这一步只是拖进来看一下导出来的文件是个什么样子)

步骤:

(1)首先新建立一个工程。

文件----》新建立项目----》Qt Widgets Application---->choose

 Location:名称与路径的填写

Build system:

Kits:

这一步一定要选中VS那个,(不要选择MinGW,在做QT练习的时候选择MinGW是可以的,但是做联合编程的时候就不要选择这个了。)

 (选择MSVC不选择MinGW,所以这就是在安装QT之前,要先安装VS的原因。------这里只是个人习惯而已)

Details:

类名称(C)Class name:这个建议大家不要使用MainWindow,会很容易乱,类名称建议大家改一个和自己项目有关的,比如这里使用QtHalconRecLocate,那么下边的头文件(Header files)、源文件(Source file)、和界面文件(Form file)就会随着改变。

基类(B)Base class:这个是一个主窗口(可以使用QMainWindow).

 汇总Summary:

 最终生成的项目如下:

 建立的工程项目,如上。

-------------------至此一个项目框架我们就建立好了。 -----------------

上边的都是自动生成的,不需要我们去写,需要我们做的是:

需要将我们想要实现的功能添加进来。

(1)在.pro里边:添加#include lib。(需要用到halcon,所以添加include lib项。

这里有一个代码管理,即在.pro上右键,选择在Explore中显示。来到如下路径下:

工程是.pro文件。

 我们需要在上述路径下添加#include lib库和包含文件。 

点击QT界面左边的项目,有一个编译地址(构建项目),这个地址默认写在我们当前目录下,这里build-QtHalcon-Desktop_Qt_5_13_2_MSVC2015_64bit-Debug。

 而这里我们可以改一下,改为跟项目在一起。

 

 点击生成,界面如下:

  

上述我们准备工作就做完了,包括:

1、qt的工程

2、halcon的导出

所以这两步只是把材料做好了,下面需要去加工了。加工才是精华.......

 3.2、qt与halcon联合

第一步:添加库(理论上是要找你自己库的所在位置,)为了便于管理在E:\QT\QtHalcon这个路径(也就是Explore显示所跳转到的这个路径下)先建立文件夹include包含头文件和lib静态链接库和bin动态链接库(bin一般也可以放在release下边)

在include文件夹下边,首先再建立一个文件夹includehalcon20x64(因为担心后边还有其他的include文件包含也放在include下边,防止弄混)

首先找到halcon的安装目录,找到你安装的halcon文件所在位置(本人halcon安装在F盘下)即F:\softinstall\Study_Software\Halcon\include,把这个路径下的文件全部复制进includehalcon20x64这个文件夹下去。(全部复制进来肯定不会有错,也可以把下图所红框的4个不要,这样以免没用的占用磁盘空间;还有的人操作是链接过来,就想配置pcl库时把路径链接过来,但是个人觉的链接的不方便,因为每个人安装的halcon位置不一样;所以提倡放在这个相对路径下,当你把代码发布给别人时,他不用去改一些东西。)

 同理lib文件夹下也重新建立一个libhalcon20x64,把halcon安装目录下的lib文件也复制进来(这里可以暂时只复制halocn.lib和halconcpp.lib这两个即可)。

第2步:添加到工程代码即把这两个包含到我们的工程代码下边。(在VS里边是通过添加属性一项一项来添加的,QT完全是使用代码来加的)​​​​​​​ 中间的DEPENDPATH解释是说应用程序依赖的搜索路径。用qt自带的添加库的方法,这几个代码会自动生成。

 -L和-l表示这是一个lib库(路径添加就是这样固定的,直接记住就行没有为什么)

第3步:添加路径完成后双击点击.ui文件,开始写窗口。

(1)拖进来一个Graphic View。就是qt的一个窗口。如果图像多的话也可以拖多个。

在右边黄色属性框里边,可以修改大小,名称等。

可以写成固定大小:

 (2)拖进来一个Push Button,并将名字修改为打开图片(直接双击这个button按钮可以修改名字的)。并在黄色属性窗口上做如下修改:

 (3)拖进来一个Group Box。并直接修改名字为设置。(并附带着把打开图片这个Button放到设置这个大的Box里边来)

(4)再拉进来一个垂直的弹簧Vertical Spacer,并在设置这个大的Box上右键,布局改为垂直布局。在整个大的就是最开始还没有拖进来Graphic View这个的时候上面右键---》布局----》做一个水平布局,这样水平与垂直高度都比较均衡,比较美观。

此时你就会看到右边黄色窗体上边Group Box下边有两个功能,那么这3个就是一个组合。每一个包含里边都是一个组合。

 按钮上直接的修改名字都是现在这个拖进来的Box或者button上改名字,然后再在黄色框内做以修改。

简单的功能到此结束,全部保存关闭这个.ui,再去编译一下即可。如下就是我们编译出来的一个项目:

 ------------------至此与halcon还没有发生关系-----------------------下面要导东西进去。

第4步:代码整合

4.1:第一步:在.ui上的打开图片上右键转到槽,

选第一个点击ok

4.2:第二步:在头文件qthalconreclocate.h这个里边加入include文件还有命名空间。

#include "HalconCpp.h"
using namespace HalconCpp;

 下面进入qthalconreclocate.cpp去写打开图片这个功能。在pB_OpenImage_clicked()下边。

此时直接可以把刚才导出的halcon代码拖进来,先把导出的halcon代码里边的前缀hv_和ho_给删除掉,因为这个是halcon自带的一个前缀没用(个人习惯)

4.3:第三步:搜索action函数,一般拷文件就是拷贝这个里边的文件。把这里边的变量和函数分别拿出来放到对应的Button下。

1、先绑定窗口

具体操作见详细代码,内部有注释。

最终实现的联合编程界面如下:

 如果在执行代码的过程中,要善于使用断点调试。

完整代码链接:

这篇关于Halcon与QT的联合编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!