简介

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

安装

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

例程

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

  启动程序,会出现如下界面,欢迎使用HDevelop的子界面你可以不用去管,可以直接×掉(右下角),因为现在我们还不需要看的这么详细,后续有需求可以再看:
image.png
  halcon中提供了很多的例程,文件-浏览HDevelop示例程序或者是Ctrl+E,会弹出例程菜单,如下图所示:
image.png
  共分为4个大类,每个大类中又包含很多子类,而每个子类中又会包含不同的函数,每一个函数中会详细的介绍可实现的功能,你可以选择一个自己比较感兴趣的函数,然后打开即可,我随便打开了一个函数:
image.png
  图形窗口:显示图片或点云,其中,某些处理过程中的数据也会在图上标注出来;
  变量窗口:显示程序运行中的变量;
  算子窗口:这个是在编程时候需要用的,现在测试例程还用不上,在后续的学习过程中,会增加该功能;
  程序窗口:显示程序,以及程序在运行中,运行到的代码行数;
image.png
  然后点击image.png运行程序,并按F5继续执行,也可以点击image.png(与F6同功能)
逐步执行程序,待程序执行完成之后,可以点击image.png回到初始状态。
  以上就是对于例程的测试过程,有兴趣的可以自己体验下。

语言转换

  在现在的开发中,用的最多的是C/C++,同样,这也是我比较熟悉的语言,语言通了,才能更方便的进行开发;
image.png
  如上图所示,这是示例中的部分代码,语言不熟悉,函数也不是很熟悉,但无所谓,因为我知道,利用halcon自带的功能,能将这一堆代码转成C/C++的文件,这就足够了。
  点击文件->导出,会弹出如下窗口: image.png
  按照图中填写就可以了,首先选择文件保存路径及文件名称,然后输出文件类型可以选择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++目录选项,配置包含目录库目录,内容安装上述填写即可:image.png
  步骤3:选择链接器->输入,配置附加依赖项,如图所示:image.png

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

#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,随着不断的学习,也会更新一些内容,若有不足或错误,烦请留言说明。


琼筵醉月
12 声望11 粉丝