遵循以下步骤在一个应用中添加Halcon/.Net:

一. 定义工具箱

Halcon/.net 不仅提供了一个类库,而且提供了一个控件:HWindowControl,它包含一个显示图像处理结果的Halcon图像窗口。你可以通过以下的步骤把这个控件添加到VS工具箱中(注意不同的VS版本有不同版本的控件)

1. 右击工具箱(工具箱可以从视图,工具箱中打开),点击选择项,这时会显示所有的.NET Framework组件

2. 点击浏览,到%HALCONROOT%\bin目录下分别有几个文件夹对应不同的VS控件版本,dotnet10 (Visual Studio .NET2002 and 2003)或者%HALCONROOT%\bin\dotnet20 (Visual Studio 2005, Visual Studio 2008) 选择halcondotnet.dll.

3. 然后在HWindowControl就会出现在工具箱上。如下图。

二. 添加一个Halcon/.net的引用

在许多应用中我们至少会使用一个HWindowControl的实例使结果可视化(visualize results).通过在form上添加一个控件,就可以自动创建一个halcondotnet的引用。

如过你不想使用HWindowControl,还可以通过以下步骤添加一个引用:

1. 右击引用(referencen)->添加引用

2. 点击浏览还是上一个目录找到对应的.dll文件,点击确定就可以看到在应用列表中多了一个halcondotnet

HALCON XL 应用后面会提到:当开发一个HALCON XL应用,那么就必须选择halcondotnetxl.dll而不是halcondotnet.dll.如果你已经添加了一个HALCON版本,那么必须删除并且添加halcondotnetxl.dl。

三. 指定命名空间

为了能够直接使用HALCON/.NET的类而不要在前面加上命名空间,那么就必须在每个源文件的前面加上:using HalconDotNet;对应的VB.net和C++应用中分别是:Imports HalconDotNet;和using namespace HalconDotNet;

四. 添加并且自定义显示一个HWindowControl

在大多数的应用中我们不只想显示一个结果。当需要HWindowControl窗口时我们只需要双击工具箱中刚才添加的HWindowControl选项便会在我们的form中出现一个空白的HWindowControl窗口。如下图:

还是那句话如果已经添加了一个HALCON版本的控件,但是你想用HALCON XL,只需要删除刚才添加的halcondotnet.dll,并且添加halcondotnetxl.dll。

如果你想在在窗口里显示图像,那么你应当把窗口调整为和图像一样的尺寸,否则显示的会很慢应为这需要进行插值。我们可以通过属性窗口改变窗口和图像部分的大小,他们分别对应WindowSize和ImagePart属性。需要注意的是ImagePart中定义的是X,Y,Width,和Height的值,但是相应的SetPart算子改变的是图像四个角点的坐标。我们可以在任何时间改变我们应用中显示部分。

VisualStudio使用HALCIN_NET控件的更多相关文章

  1. WinForm 控件的布局(Dock属性)的注意点

    对于Dock属性,添加控件的顺序会影响它们停驻的方式.例如,如果你对窗体添加控件A,指示其停驻填充(Fill), 然后你对窗体添加控件B并指示其停驻顶部(Top),控件B将覆盖控件A的上部.原因就是控 ...

  2. wpf控件设计时支持(1)

    原文:wpf控件设计时支持(1) 这部分内容几乎是大家忽略的内容,我想还是来介绍一下. 本篇源码下载 1.属性元数据 在vs IDE中,在asp.net,winfrom等开发环境下,右侧的Proper ...

  3. 在VisualStudio 工具箱中隐藏用户控件

    当我们创建一个用户控件后,VisualStudio会自动将其添加到工具箱中,本来这是一个比较贴心的设计.但是,有的时候,我们并不想将用户控件放到工具箱中. 例如:在WPF中,为了避免一个页面的控件过多 ...

  4. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——ImageTabBar控件的使用方式

    一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个ImageTabBar控件到窗体界面上 修改ImageTabBa ...

  5. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式

    一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个GifView控件到窗体界面上 修改GifView的属性 Aut ...

  6. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——VoiceRecorder控件的使用方式.Net移动开发

    一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个VoiceRecorder控件和一个ImageButton控件到 ...

  7. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——BarcodeView控件的使用方式,.Net移动开发

    BarcodeView控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个BarcodeView控件到窗体界面 ...

  8. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——AlbumView相册控件的使用方式

    AlbumView控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个AlbumView控件到窗体界面上 修改 ...

  9. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——SliderView控件的使用方式

    SliderView控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个SliderView控件到窗体界面上 ...

随机推荐

  1. (转)ERROR : The processing instruction target matching "[xX][mM][lL]" is not allowed.

    现象:ERROR   : The processing instruction target matching "[xX][mM][lL]" is not allowed. 异常解 ...

  2. 浅谈tcp协议

    tcp协议     三次握手四次挥手                 优点: 稳定,可靠   应用:发邮件                 缺点: 有延迟 占用系统资源多               ...

  3. JS获取当前时间往后一天的时间

    (图片来自W3school) let myDate = new Date(); myDate.setDate(myDate.getDate() + 1); let year = myDate.getF ...

  4. java类的实例化顺序

    1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行 2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行 3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行 4 ...

  5. MySQL之完整建表语句及数据类型

    1.创建表的完整语法 create table 表名( 字段名称 数据类型[(长度) 约束条件], 字段名称 数据类型[(长度) 约束条件] ) 必须的:字段名 数据类型 表名 可选的:长度 约束条件 ...

  6. 深入分析Java反射(四)-动态代理

    动态代理的简介 Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分 ...

  7. L0,L1,L2正则化浅析

    在机器学习的概念中,我们经常听到L0,L1,L2正则化,本文对这几种正则化做简单总结. 1.概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数 ...

  8. 干货 | 玩转云文件存储——利用CFS实现web应用的共享访问

    京东云文件服务(Cloud File Service,以下简称:CFS)是一种高可靠.可扩展.可共享访问的全托管分布式文件系统.它可在不中断应用服务的情况下,根据您对文件系统的使用,按需扩展或缩减,并 ...

  9. C++---类成员变量定义为引用

    摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法 note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必须在初始化列表中进行初始化) #i ...

  10. LeetCode No.160,161,162

    No.160 GetIntersectionNode 相交链表 题目 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 输入:intersectVal ...