1. WPF+Halcon

引用halcondotnet.dll和hdevenginedotnet.dll

XAML中导入命名空间xmlns:halcon=”clr-namespace:HalconDotNet;assembly=halcondotnet”。输入xmlns后,tab选择halcon,然后再tab就自动输入)

WPF布局,创建HWindowControlWPF窗口
2.HDevEngine

声明
HDevEngine MyEngine = new HDevEngine(); //halcon engine
HWindow hHalconWindow; //halcon window
HDevProcedure Procedure; // 概括一个Procedure,其输入输出参数的数量、名字等其他信息
HDevProcedureCall ProcCall; //管理一个Procedure的实例,比如运行等其他操作

窗口加载后,设置HDevEngine的Procedure目录 和 具体要调用Procedure名字
MyEngine.SetProcedurePath("@string path"); //如果Procedure是Lib,那么就不是目录,而是Lib的名字,因为Lib里面包含很多Procedures
hHalconWindow = HWindowControlWPF1.HalconWindow;
Procedure = new HDevProcedure("detect_fin"); //指定具体Procedure名字
ProcCall = new HDevProcedureCall(Procedure); //实际运行的实例

设置输入参数,运行,获取输出参数
Image.GrabImage(Framegrabber); //获取图像
ProcCall.SetInputIconicParamObject("Image", Image); //将图像输入Proc
ProcCall.Execute(); //执行Proc
FinRegion = ProcCall.GetOutputIconicParamRegion("FinRegion"); //获取Proc的结果
FinArea = ProcCall.GetOutputCtrlParamTuple("FinArea"); //获取Proc的结果

//显示部分
Image.DispObj(hHalconWindow); //显示图像
hHalconWindow.SetColor("red");
hHalconWindow.DispObj(FinRegion);
hHalconWindow.SetColor("white");
hHalconWindow.SetTposition(150, 20);
hHalconWindow.WriteString("Finrea: " + FinArea.D);

3.关于参数

如果需要在不同Procedures之间传递参数,比如Image,则可以使用HDevEngine的Global Variables。

//设置HDevEngine的全局变量
MyEngine.SetGlobalIconicVarObject("Image", Image);
MyEngine.SetGlobalIconicVarObject("FinRegion", FinRegion);
MyEngine.SetGlobalCtrlVarTuple("FinArea", FinArea);
---------------------

转载!!
作者:sp183207326
来源:CSDN
原文:https://blog.csdn.net/sp183207326/article/details/72876446

C# WPF Halcon HDevEngine混合编程的更多相关文章

  1. Halcon C++混合编程学习之Qt 实现检测焊接点

    1 # include "HalconCpp.h" # include "HDevThread.h" # include <X11/Xlib.h> ...

  2. halcon与C#混合编程进阶版

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. 新手来这里:http://www.cnblogs.com/badguy518/p/55150 ...

  3. Halcon 17与 c# 混合编程

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. halcon源程序:   dev_open_window(0, 0, 512, 512, ' ...

  4. C# Halcon混合编程中遇到的问题(一)

    目标平台 安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86 目标框架 不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Fra ...

  5. WPF(C#)与MATLAB混合编程

    WPF(C#)与MATLAB混合编程 WPF可以为开发者提供便捷地构建用户交互界面的解决方法,而matlab则在科学计算方面有着无与伦比的优势,因此在一些需要将科学算法转换为应用软件的项目中,需要应用 ...

  6. 如玫瑰一般的PHP与C#混合编程

    故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的 ...

  7. C和C++混合编程中的extern "C" {}

    引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif ...

  8. C# 托管和非托管混合编程

    在非托管模块中实现你比较重要的算法,然后通过 CLR 的平台互操作,来使托管代码调用它,这样程序仍然能够正常工作,但对非托管的本地代码进行反编译,就很困难.   最直接的实现托管与非托管编程的方法就是 ...

  9. [转载:]C#与Fortran混合编程之本地调用Fortran动态链接库

    前言 C#发展到现在,已是一门相当完善的语言,他基于C语言风格,演化于C++.并依靠强大的.NET底层框架.C#可以用来快速构建桌面及Web应用.然而在我们的实际工作中,尽管C#已经非常完善,但还是不 ...

随机推荐

  1. 嵌套表用法详解(PLSQL)

    嵌套表 嵌套表是一种类似于索引表的结构,也可以用于保存多个数据,而且也可以保存复合类型的数据 嵌套表指的是一个数据表定义事同时加入了其他内部表的定义,这一概念是在oracle 8中引入的,它们可以使用 ...

  2. winform窗体启动过程

    窗体启动执行顺序:FormShowFormPaintFormActivateFormResize 关闭窗体过程FormCloseFormDestroy 最小化再最大化:FormPaintFormRes ...

  3. 关于hover的一个问题记录

    问题描述: 页面显示: 当鼠标移动到其中一个文件夹上面的时候,显示如下: 显示这样的效果的原理是:对于外层元素.collectionsbox添加hover之后,再去取里面的元素,比如说左上角的shar ...

  4. logback 常用配置详解(序)logback 简介

    转自:http://aub.iteye.com/blog/1101260 logback 简介 Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在J ...

  5. SQL专家云监控

    SQL专家云监控:http://www.zhuancloud.com/Index.html

  6. 微信小程序分享支持自定义封面图

    微信小程序又发布更新了,刚好昨天支付宝也发布小程序,不能让它抢了风头的节奏.微信小程序主要更新如下:“小程序分享支持自定义封面图,公众号及小程序客服可发送小程序卡片.同时,我们还开放了获取发票抬头,指 ...

  7. SectionList的使用

    这个是效果: 第一步:准备数据源:Car.json {"data": [ { "cars": [ { "icon": "m_180 ...

  8. kafka2 简单介绍

    kafka是JMS的一种实现 JMS(java message service):middle ware,中间件技术.Queue:队列模式,P2P,点对点.publish-subscribe:主题模式 ...

  9. 在IIS6中FLV不能播放

    故障:Flv文件在本地能播放,上传到服务器上不能播放. 原因:WIN2003加强了IIS6的MIME验证,一切未注册扩展文件格式统统显示404错误. 解决办法:在IIS服务器上添加对.FLV文件的支持 ...

  10. [django]django models最佳实战

    models class People(models.Model): name = models.CharField(max_length=30) age = models.CharField(max ...