赞
踩
目录
第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。
C#, WPF, vs2022, 海康视觉算法平台VisionMaster 4.3.0
上图这些.sol为后缀的是vm的方案文件。
打开方案文件,下图显示的是【方案】里的【流程】,一个方案可以有多个流程,一对多关系。
下图中绿色圈出来叫【模块】
相关的文章可以看本专栏以前的文单。下面也会给出链接。
3.1 找到VM安装目录下的二开DLL文件目录。
我是安装在D盘的:D:\Program Files\VisionMaster4.3.0\Development\V4.x\ComControls\Assembly
大家的目录应该和我的差不多,可能只是盘符不一样。
3.2 在项目中添加引用
这么多DLL具体引用什么呢?下图
这是基本引用。
如果用到了其他模块要添加对应该的DLL文件。也很好找。根据VisionMaster算法平台SDK开发指南V4.3.1(.NET)相关的接口函数中看到的第一段名称同名。
上图中用红线标出来的就是DLL文件名。
在用这个模块相关的类时要先添加引用。
窗体代码 如果要添加VM相关控件。要在窗体中添加引用
xmlns:vm="clr-namespace:VMControls.WPF.Release;assembly=VMControls.WPF.Release"
按钮代码
获取方案结果
- /// <summary>
- /// 获取方案结果
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnGetResult_Click(object sender, RoutedEventArgs e)
- {
- //加载方案
- VmSolution.Load("F:/二期VM视觉学习/标定相机找圆心20240614.sol",string.Empty);
-
- //使用流程名称获取流程对象
- VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance["流程1"];
-
- //运行一次流程才能拿到结果
- vmProcedure.SyncRun();
-
- IMVSCircleFindModuTool circleFitResult = (IMVSCircleFindModuTool)VmSolution.Instance["流程1.圆查找1"];
- if (circleFitResult != null)
- {
- MessageBox.Show("获取到的圆心坐标:X:" + circleFitResult.ModuResult.OutputCircle.CenterPoint.X.ToString("0.0000") + ",Y:" + circleFitResult.ModuResult.OutputCircle.CenterPoint.Y.ToString("0.0000"));
- }
- else
- {
- MessageBox.Show("失败");
- }
- }
注意:加载方案时路径不建议写死。比较好的方法是将方案文件复制到bin目录下的一个固定文件夹里,再用获取程序当前路径的方式获取后再拼接。
- // 获取应用程序的执行目录
- string appDirectory = Assembly.GetExecutingAssembly().Location;
- appDirectory = appDirectory.Substring(0, appDirectory.LastIndexOf("\\") + 1);
- string imagePathRelative = "VmProCess/标定相机找圆心20240614.sol";
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。