【Halcon引擎 C++】为引擎实现窗口显示 QT界面

HALCON与C++结合处理图象时,通常情况是将HALCON图像处理部分导出C++代码,然后添加到项目中再执行。而HALCON提供了一种脚本执行算法的方式,该方式的优点是:
1、软件界面代码与HALCON图像处理分离,不需要将HALCON图像处理部分导出成C++代码,否则每一次修改HALCON 时,C++代码相应部分就需要跟着更改,便捷性不足。
2、脚本方式执行算法可降低内存泄漏。

引擎引用说明

主要用使用的类:
HDevEngine、HDevProgram、HDevProgramCall、HDevProcedure、HDevProcedureCall、HDevOpMultiWindowImpl、HDevEngineException。

HDevEngine类是管理全局设置。如设置或获取全局变量的值、设置脚本路径、启动停止调试模式等。一般在单个进程中仅能使用一个引擎对象。
HDevProgram类加载.hdev格式文件以及获取文件内部参数一般信息。
HDevProgramCall类执行.hdev文件格式脚本,并获取变量的值。
HDevProcedure类加载.hdvp格式外部函数以及内部函数。
HDevProcedureCall类执行.hdvp外部函数和内部函数。并且可以设置或获取外部函数、内部函数参数。
HDevOperatorImplCpp类主要是设置结果显示的实现方法,在hdev函数中执行的结果可以显示在界面中。
HDevEngineException类是引擎相关的异常类。

引擎的使用方法

这里只提供实现窗口显示的示例,关于引擎的全局变量、函数变量的输入输出操作不做详细说明。

需要的头文件和命名空间

#include “HalconCpp.h”
#include “HDevEngineCpp.h”
using namespace HalconCpp;
using namespace HDevEngineCpp;

调用的hdev文件

main方法内:
在这里插入图片描述
调用的自定义函数"Image_Test ":
在这里插入图片描述

QT界面进程

在这里插入图片描述

界面进程头文件
#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_TestInstance.h"
#include "HalconCpp.h"
#include "HDevEngineCpp.h"
#include "my_hdevoperatorimpl.h"

using namespace HalconCpp;
using namespace HDevEngineCpp;
using namespace std;

class TestInstance : public QMainWindow
{
   
    Q_OBJECT

public:
    TestInstance(QWidget *parent = nullptr);
    ~TestInstance();
    HDevEngine  my_engine;
    HWindow WindowHandle;
    std::shared_ptr<HDevProgram> m_ptrHProgram = std::make_shared<HDevProgram>();     //申请加载程序文件引擎指针
    std::shared_ptr<HDevProcedure> m_ptrHProcedure = std::make_shared<HDevProcedure>();     //申请加载函数引擎指针
public slots:
    void on_pushButton_clicked(); 
private:
    Ui::TestInstanceClass ui;
};
界面进程源文件
#include "TestInstance.h"
TestInstance::TestInstance(QWidget* parent)
	: QMai
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多巴胺耐受

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值