遵循以下步骤在一个应用中添加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. .NET技术-2.0. 操作数据库-Dapper

    .NET技术-2.0. 操作数据库-Dapper 项目参见: 1. 为什么选择Dapper 1) 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco seria ...

  2. iview checkbox demo(文档改写)

    <template> <div class="content"> <div style="border-bottom: 1px solid ...

  3. Spring Cloud Zuul 网关服务的fallback

    当我们的zuul进行路由分发时,如果后端服务没有启动,或者调用超时,这时候我们希望Zuul提供一种降级功能,而不是将异常暴露出来. Spring cloud zuul提供这种降级功能,操作步骤如下: ...

  4. C++构造函数概念作用

    作用: 对对象进行初始化,如给成员变量赋初值,而不用专门再写初始化函数. 防止有些对象没被初始化就使用,导致程序出错. 要求: 名字与类名相同,可以有参数,但不能有返回值(void也不行) 编译时: ...

  5. C语言程序设计|05

    问题 回答 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9772 我在 ...

  6. LeetCode——714. 买卖股票的最佳时机含手续费.

    给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每次交易都需要付手续费.如果你已经购买了一个 ...

  7. 同时运行两个版本相同的tomcat

    由于项目需要,代理集群和一个节点都部署在本地,那么就需要有两个tomcat,一个部署集群,一个部署项目,我都用了7.0.34版本的tomcat 当启动代理的tomcat成功时,再启动节点的tomcat ...

  8. python os.path.dirname() abspath()

    测试文件的名称 path_test.py 先确定文件目录 (my_flask3) python@ubuntu:~/Desktop/flask_news_pro$ python path_test.py ...

  9. C盘满了解决办法之查看文件夹占用的统计界面

    TreeSize Free软件,可以实时查看文件夹使用情况: 百度搜索: 下载安装完以后的显示界面如下:

  10. pandas 学习笔记【持续更新】

    import numpy as np import pandas as pd import matplotlib.pyplot as plt df1 = pd.DataFrame(np.arange( ...