简介
作为一名合格得到机器视觉算法工程师,熟悉某些必要的算法库以及软件是很有必要的,在本文中,就简单的介绍下一款非常强大的软件-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
的函数了。
本文简单的介绍了下halcon
与halcon+VS
,随着不断的学习,也会更新一些内容,若有不足或错误,烦请留言说明。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。