前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Halcon学习(四) 导出C++代码,在VS2010下编译

Halcon学习(四) 导出C++代码,在VS2010下编译

作者头像
chaibubble
发布2022-05-07 09:10:48
9110
发布2022-05-07 09:10:48
举报
文章被收录于专栏:深度学习与计算机视觉

Halcon中除了依赖于HDevelop平台的操作,其他算子都支持了C++语言接口,比如: read_image()算子:

这里写图片描述
这里写图片描述

而dev_display()则没有C++的接口:

这里写图片描述
这里写图片描述

我们使用Halcon导出一个简单的功能算子: 在HDevelop中只添加read_image (Image, 'fabrik')一行代码,选择“文件”–“导出”,在“导出”窗口中选择导出文件的格式(C++ - HALCON/C++)并选择导出路径:

这里写图片描述
这里写图片描述

这样在路径下我们会看到一个.cpp文件:

这里写图片描述
这里写图片描述

这个文件中,功能已经被定义到了action()函数中,所以我们需要的也只是该函数中的内容:

代码语言:javascript
复制
void action()
{
  // Local iconic variables
  HObject  ho_Image;
  ReadImage(&ho_Image, "fabrik");
}

可以看到,这个函数中调用的其实就是HDevelop帮助文档中read_image (Image, 'fabrik')算子的C++接口。

我们使用VS2010测试这个导出的函数,新建一个工程并添加一个空的文件,在Halcon导出的cpp文件中摘录如下代码:

代码语言:javascript
复制
#ifndef __APPLE__
#  include "HalconCpp.h"
#  include "HDevThread.h"
#  if defined(__linux__) && !defined(NO_EXPORT_APP_MAIN)
#    include <X11/Xlib.h>
#  endif
#else
#  ifndef HC_LARGE_IMAGES
#    include <HALCONCpp/HalconCpp.h>
#    include <HALCONCpp/HDevThread.h>
#  else
#    include <HALCONCppxl/HalconCpp.h>
#    include <HALCONCppxl/HDevThread.h>
#  endif
#  include <stdio.h>
#  include <HALCON/HpThread.h>
#  include <CoreFoundation/CFRunLoop.h>
#endif

using namespace HalconCpp;
using namespace std;

int main()
{
	HObject  ho_Image;
	ReadImage(&ho_Image, "1.jpg");
    return 0;
}

设置VS2010

1.注意Halcon版本与VS2010中的应用程序对应 如果Halcon是64位的,那么其对应的lib同样是64位,这是选择Win32程序的话会导致无法加载库,所以我们需要想VS2010中的Win32改成X64。

这里写图片描述
这里写图片描述

2.引入必要的头文件 在(项目属性)–(配置属性)–(C/C++)–(常规)–“附加包含目录”中添加路径:

代码语言:javascript
复制
$(HALCONROOT)/include
$(HALCONROOT)/include/halconcpp
这里写图片描述
这里写图片描述

3.包含库路径 在(项目属性)–(配置属性)–(链接器)–(常规)–“附加库目录”中添加库路径:

代码语言:javascript
复制
 $(HALCONROOT)/lib/$(HALCONARCH)
这里写图片描述
这里写图片描述

4.添加库 在(项目属性)–(配置属性)–(链接器)–(输入)–“附加依赖项”中添加库:

代码语言:javascript
复制
halconcpp.lib
这里写图片描述
这里写图片描述

5.添加dll文件 将缺少的dll文件放进工程目录源文件所在的位置。Halcon的dll文件在*****\bin\x64-win64路径下。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档