机器视觉工具学习---halcon

简介

作为一名合格得到机器视觉算法工程师,熟悉某些必要的算法库以及软件是很有必要的,在本文中,就简单的介绍下一款非常强大的软件-halcon的安装与基本使用。

安装

作为一个软件,halcon的安装与其他软件没有什么区别,无非就是双击 *.exe ,然后选择安装路径及一些很简单的选项,安装包可以从官网上直接下载,安装完成后,会在你的应用列表中显示以下图标:

我安装得到版本是13,x64位系统的。

例程

作为一个应用软件,而且短时间内无法掌握全部算法的软件,学习下例程还是很好的,至少会从整体上了解这个软件的使用,哪怕你不熟悉他的代码,但这也不妨碍你去了解下它能实现的功能。

启动程序,会出现如下界面, 欢迎使用HDevelop 的子界面你可以不用去管,可以直接 × 掉(右下角),因为现在我们还不需要看的这么详细,后续有需求可以再看:

halcon中提供了很多的例程, 文件-浏览HDevelop示例程序 或者是 Ctrl+E ,会弹出例程菜单,如下图所示:

共分为4个大类,每个大类中又包含很多子类,而每个子类中又会包含不同的函数,每一个函数中会详细的介绍可实现的功能,你可以选择一个自己比较感兴趣的函数,然后 打开即可 ,我随便打开了一个函数:

图形窗口 :显示图片或点云,其中,某些处理过程中的数据也会在图上标注出来;

变量窗口 :显示程序运行中的变量;

算子窗口 :这个是在编程时候需要用的,现在测试例程还用不上,在后续的学习过程中,会增加该功能;

程序窗口 :显示程序,以及程序在运行中,运行到的代码行数;

然后点击 运行程序,并按 F5 继续执行,也可以点击 (与 F6 同功能)

逐步执行程序,待程序执行完成之后,可以点击 回到初始状态。

以上就是对于例程的测试过程,有兴趣的可以自己体验下。

语言转换

在现在的开发中,用的最多的是C/C++,同样,这也是我比较熟悉的语言,语言通了,才能更方便的进行开发;

如上图所示,这是示例中的部分代码,语言不熟悉,函数也不是很熟悉,但无所谓,因为我知道,利用halcon自带的功能,能将这一堆代码转成C/C++的文件,这就足够了。

点击 文件->导出 ,会弹出如下窗口:

按照图中填写就可以了,首先选择文件保存路径及文件名称,然后输出文件类型可以选择 C++ 也可以选择 C (个人认为没太大差别),然后点击 导出 就可以了,这样,生成的文件就可以导入VS中编辑了。

VS+Halcon

能在 VS 中直接使用 halcon 是最理想的情况,我用的是 VS2015 ,貌似在 halcon 安装的时候会自动检测系统中安装的 VS 版本(当时也没有过多的注意)。

不管怎么说, halcon 在安装完成后会生成一个库,在 VS 中配置该库与其他库是没有区别的,都是配置 包含目录库目录

#包含目录
..\halcon\include
..\halcon\include\halconcpp
#库目录
..\halcon\lib\x64-win64
#附加依赖项
haconcpp.lib

按照以上配置即可,路径要根据自己系统中的配置进行。

详细版

为避免某些新手不是很熟悉 VS 的设置,不知如何配置上述选项,现在这里详细说明(其余的库也是这种配置方法,近似标准化的流程,学会就好),详细步骤为:

步骤1:右键项目名称,打开 属性页

步骤2:选择 VC++目录 选项,配置 包含目录库目录 ,内容安装上述填写即可:

步骤3:选择 链接器->输入 ,配置 附加依赖项

,如图所示:

完成属性配置后,就可以进行程序编写了,在这里将简单的示例贴上,用以说明整个流程的畅通:

#include "HalconCpp.h"
#include <iostream>

using namespace std;
using namespace HalconCpp;

int main()
{
    HImage Mandrill("liu.jpg");
    Hlong width, height;
    Mandrill.GetImageSize(&width, &height);

    HWindow w(0, 0, width, height);
    Mandrill.DispImage(w); 
    w.Click();
    w.ClearWindow();

    HRegion Bright = Mandrill >= 128;
    HRegion Conn = Bright.Connection();
    HRegion Large = Conn.SelectShape("area", "and", 500, 90000);
    HRegion Eyes = Large.SelectShape("anisometry", "and", 1, 1.7);
    Eyes.DispRegion(w);
    w.Click();
}

完成上述后,就可以在 VS 中直接使用 halcon 的函数了。

本文简单的介绍了下 halconhalcon+VS ,随着不断的学习,也会更新一些内容,若有不足或错误,烦请留言说明。

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章