VS2019+QT+Halcon简单显示图像示例
- 准备:下载安装HALCON
HALCON最新版本下载halcon-20.05.0.0-windows.exe,链接如下:
https://www.51halcon.com/thread-4205-1-1.html
下载需要注册一下账号才能看到提取码,lisence也需要下载
下载好之后,安装,一路默认安装即可,自动配置环境变量
- 配置
一、vs配置halcon:
1、项目—》属性—》c/c++—》常规—》附件包含目录-》添加HALON的头文件,/include和/include/halconcpp两个目录;如下图:
$(HALCONROOT)\include
$(HALCONROOT)\include\halconcpp
其中HALCONROOT为环境变量,即HALCON安装路径
HALCONROOT=D:\Program Files\MVTec\HALCON-20.05-Progress
2、链接器—》常规—》附加库目录—》添加lib/x64_win64目录;
$(HALCONROOT)\lib\$(HALCONARCH)
3、链接器—》输入—》附加依赖项—》添加halconcpp.lib;
4、配置动态链接库,将bin/x64_win64里所有的dll文件拷贝到项目中,每次新建个项目都需要这么做较繁琐,这里直接在系统环境变量中配置路径,将该路径拷贝到系统环境变量的path中,第一次需重启;
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());
}