VS2019+QT+Halcon简单显示图像示例

  • 准备:下载安装HALCON

HALCON最新版本下载halcon-20.05.0.0-windows.exe,链接如下:

https://www.51halcon.com/thread-4205-1-1.html

VS2019+QT+Halcon简单显示图像示例

 

 

下载需要注册一下账号才能看到提取码,lisence也需要下载

下载好之后,安装,一路默认安装即可,自动配置环境变量

  • 配置

一、vs配置halcon:

1、项目—》属性—》c/c++—》常规—》附件包含目录-》添加HALON的头文件,/include和/include/halconcpp两个目录;如下图:

$(HALCONROOT)\include

$(HALCONROOT)\include\halconcpp

VS2019+QT+Halcon简单显示图像示例

其中HALCONROOT为环境变量,即HALCON安装路径

HALCONROOT=D:\Program Files\MVTec\HALCON-20.05-Progress

 

VS2019+QT+Halcon简单显示图像示例

2、链接器—》常规—》附加库目录—》添加lib/x64_win64目录;

$(HALCONROOT)\lib\$(HALCONARCH)

 

VS2019+QT+Halcon简单显示图像示例

3、链接器—》输入—》附加依赖项—》添加halconcpp.lib;

 

VS2019+QT+Halcon简单显示图像示例

4、配置动态链接库,将bin/x64_win64里所有的dll文件拷贝到项目中,每次新建个项目都需要这么做较繁琐,这里直接在系统环境变量中配置路径,将该路径拷贝到系统环境变量的path中,第一次需重启;

VS2019+QT+Halcon简单显示图像示例

 

5、在VS程序中添加#include“halconcpp.h”头文件和using namespace HalconCpp;命名空间。

 

至此,halcon在vs中的配置全部结束,但每次新建个项目都需要进行上面的配置太麻烦,可以在项目属性表里添加新项目属性表(视图-》属性管理器),保存在一路径后再在项目属性表中打开进行上面的配置保存,下次使用直接在项目属性表中添加现有属性表,找到该属性表即可。

 

示例在QLabel中显示图像,代码如下:

#include "halconcpp.h"

using namespace HalconCpp;

 

HALCON_test::HALCON_test(QWidget *parent)

: QMainWindow(parent)

{

ui.setupUi(this);

 

//halcon中只有图像、区域、XLD为Object类型,其余都为Tuple类型

HObject ho_Image1;

HTuple hv_Width, hv_Height, hv_WindowHandle, kuan, gao;

 

HWND h_wndDisplay = (HWND)ui.label->winId();//获取label的句柄

//强制类型转化

LONG windowID = (LONG)h_wndDisplay;

 

ReadImage(&ho_Image1, "E:/11_HALCON/5.jpg");

GetImageSize(ho_Image1, &hv_Width, &hv_Height);

SetWindowAttr("background_color", "black");

 

//得到控件的句柄,放入第五个参数,即在该控件上打开一个窗口,

//获得控件窗口的宽和高,分别放入第三、四个参数,则图像在整个控件窗口上显示

OpenWindow(0, 0, ui.label->width(), ui.label->height(), windowID, "", "", &hv_WindowHandle);

 

HDevWindowStack::Push(hv_WindowHandle);

if (HDevWindowStack::IsOpen())

DispObj(ho_Image1, HDevWindowStack::GetActive());

 

}