C# WPF Halcon HDevEngine混合编程

1. WPF+Halcon布局

引用halcondotnet.dll和hdevenginedotnet.dllspa

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

WPF布局,建立HWindowControlWPF窗口
2.HDevEnginexml

声明
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的结果blog


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

3.关于参数string

若是须要在不一样Procedures之间传递参数,好比Image,则能够使用HDevEngine的Global Variables。it

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

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

变量

相关文章
相关标签/搜索