[8]Halcon联合VS编程

11 篇文章 20 订阅

1.配置环境

1.1 Qt和VS2017的环境配置
在VS2017中新建Qt工程,点击工程属性,配置好包含目录和库目录

1.2 在VS的C++属性中配置Halcon的环境

项目--属性--C/C++--常规--附加包含目录--添加/include和/include/halconcpp目录

链接器--常规--附加库目录--添加lib/x64_win64目录

链接器--输入--附加依赖项--添加halcon.lib halconcpp.lib hdevenginecpp.lib

 配置动态链接库,将bin/x64_win64里所有的dll文件拷贝到项目

 将下图中的.dll文件复制到程序的源码文件夹

 在头文件中添加如下代码,就可以使用联合Halcon编程了。

配置附加依赖项(后期在编程过程中可能还会添加其他lib文件名)

 可以参考Halcon安装目录下的例子进行编程,关于每一种语言的例子都已包含。

只用Halcon的引擎联合C++编程

新建项目,将下图中的文件复制到项目的源码文件夹下

在halconqt.h头文件中添加如下代码: 

#pragma once

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

#include "my_error_output.h"//Halcon安装目录下例子文件
#include "my_hdevoperatorimpl.h"//Halcon安装目录下例子文件
#include "my_thread_impl.h"//Halcon安装目录下例子文件

using namespace HalconCpp;
using namespace HDevEngineCpp;

class HalconQt : public QMainWindow
{
    Q_OBJECT

public:
    HalconQt(QWidget *parent = Q_NULLPTR);
	~HalconQt();

private:
    Ui::HalconQtClass ui;

	HTuple winHandle;
	HDevEngine myEngine;
	MyHDevOperatorImpl *myOperatorImpl;
	HDevProgram program;

private slots:
	void SelectPro();
	void SelectFunc();
	void RunSinglePro();


};

在halconqt.cpp源文件中添加如下代码:

#include "halconqt.h"
#include "qfiledialog.h"

HalconQt::HalconQt(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	myOperatorImpl = new MyHDevOperatorImpl();
	Hlong windId = (Hlong)ui.gphView_PicShow->winId();
	myEngine.SetHDevOperatorImpl(myOperatorImpl);

	connect(ui.btn_SelectPro, &QPushButton::clicked, this, &HalconQt::SelectPro);
	connect(ui.btn_SelectFunc, &QPushButton::clicked, this, &HalconQt::SelectFunc);
	connect(ui.btn_RunSinglePro, &QPushButton::clicked, this, &HalconQt::RunSinglePro);

}

HalconQt::~HalconQt()
{
}

void HalconQt::SelectPro()
{
	QString path = QFileDialog::getOpenFileName();
	ui.txt_SelectPro->setText(path);
	std::string proPath = path.toStdString();
	program.LoadProgram(proPath.c_str());
	HDevProgramCall programCall = program.Execute();
	//HTuple result = programCall.GetCtrlVarTuple("FinArea");
	//ui.labl_Result->setText(QString::number(result[0].D()));

}

void HalconQt::SelectFunc()
{
	QString path = QFileDialog::getExistingDirectory();
	ui.txt_SelectFunc->setText(path);
	QByteArray bytePath = path.toLocal8Bit();
	const char * funcPath = bytePath.constData();
	myEngine.SetProcedurePath(funcPath);

}

void HalconQt::RunSinglePro()
{
	QString path = QFileDialog::getOpenFileName();
	ui.txt_SingleProPath->setText(path);
	QByteArray byteSinglePath = path.toLocal8Bit();
	const char * singleProPath = byteSinglePath.constData();
	HDevProgram singleProgram;
	singleProgram.LoadProgram(singleProPath);
	HDevProgramCall singleProgramCall = singleProgram.Execute();

}

在这里插入图片描述

 

参考:(455条消息) Halcon联合C++(QT)编程_qq_20792765的博客-CSDN博客_halcon联合c++

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon是一款工业视觉软件,可用于机器人视觉、自动化和品质控制等领域。而C语言作为一个底层语言,可以提供更高的性能和灵活性。 使用Halcon联合C,能够帮助开发者从底层开始构建自己的计算机视觉应用程序。C语言可以用来编写高效的算法,而Halcon则可以提供可视化编程界面和现成的图像处理函数库。开发者可以使用C语言实现自己的算法,然后将算法进行封装,以便在Halcon中使用。 使用Halcon联合C还有许多其他好处。例如,开发者可以利用C语言进行低级别的图像控制和数据_IO,然后使用Halcon进行高级别的控制(例如表面匹配,物体检测和识别,特征提取等)。 此外,Halcon联合C还可以帮助开发者提高性能并减少内存使用,尤其是在大型图像处理任务中。由于C语言提供更多的内存和速度控制,因此将其与Halcon结合使用可以实现更多的资源优化。 总之,通过将Halcon与C结合使用,开发者可以在计算机视觉应用程序中获得性能和灵活性的最佳平衡。无论是将两者结合来创建底层算法,还是使用Halcon来实现高级别的控制,开发者都可以受益于这种组合。 ### 回答2: Halcon和C一起使用可以实现图像处理算法的高效开发和优化,从而实现高速、准确的图像处理和计算机视觉任务。Halcon作为一款成熟的图像处理软件,具有强大的图像处理算法库和用户界面,可以方便地进行图像采集、预处理、分析和展示。而C语言,则是一种通用、高效的编程语言,可以进行具有复杂性能要求的图像处理算法的优化和实现。Halcon提供了方便的接口,使得用户可以用C语言与Halcon进行交互,实现自定义算法的快速开发和优化。同时,Halcon和C联合使用还可以实现对嵌入式设备或FPGA等硬件平台的支持,从而提高其运算速度和实现更多的计算能力。总而言之,Halcon和C的联合使用可以使得图像处理应用程序开发更加高效和灵活,为许多领域,如机器视觉、自动化生产线、医疗影像等提供更好的解决方案。 ### 回答3: Halcon是一款强大的计算机视觉软件,具有很高的灵活性和可扩展性。Halcon可以与其他软件和编程语言进行联合使用,其中包括C语言。 Halcon联合C语言的主要优点是,可以利用C语言进行高级算法的开发和优化,同时利用Halcon进行图像处理和计算机视觉应用的实现。这种联合使用可以提高程序的性能和效率,节省开发时间和成本。 Halcon提供了与C语言进行集成的API接口,可以方便地进行数据传输和函数调用。同时,Halcon还支持C语言编写的DLL动态链接库,可以轻松地将Halcon集成到现有的C语言项目中。 除此之外,Halcon还提供了丰富的开发文档和示例程序,帮助开发人员快速掌握联合使用的技巧和方法。 综上所述,Halcon联合C语言可以充分发挥两者的优势,提高开发效率和程序性能,使图像处理和计算机视觉应用开发更加便捷和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值