海康VisionMaster的使用

关于

提示:海康VisionMaster4.0出来也有一段时间了。 公司项目上开发为了降低成本,VisionMasterr上了首选,之前都是搞康耐视系列, 现在做完项目了, 一起回顾下海康的软件


一、使用步骤

1.下载VisinMaster,链接:https://www.hikrobotics.com/cn/machinevision/service/download?module=0 ,目前最新的已经是4.1版本了 ,这里我们围绕4.0讲一下。

2.关于怎么导入海康自己的库, 这里不做多详解, 有兴趣的小伙伴可以找我私聊。 这里跳过。

3.加载工程。

代码如下(示例):

  public static void LoadVmSolution(string _filename)
        {
            try
            {
                #region 检测VM4.0是否打开
                List<Process> processList = new List<Process>();
                Process[] processes = Process.GetProcesses();
                foreach (var item in processes)
                {
                    if (item.ProcessName == "VisionMaster")
                    {
                        processList.Add(item);
                    }
                }
                if (processList.Count != 0)
                {
                    foreach (var item in processList)
                    {
                        if (item.ProcessName == "VisionMaster")
                        {
                            item.Kill();
                        }
                    }
                }
                #endregion
            }
            catch 
            {
            }
            try
            {
                VM.Core.VmSolution.Import(_filename);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

加载解决方案时,最好关闭一下Vm相关资源


## 4.运行流程。 代码如下(示例):
  public void Run()
        {
            try
            {
                if (null != _VmProcedure)
                    _VmProcedure.Run();
            }
            catch
            {
              
            }
        }

运行流程


4.获取结果。

代码如下(示例):

  public class ToolBlockOutputResult
    {
        /// 
        /// 流程
        /// 
        private VmProcedure _VmProcedure;
        /// 
        /// 输出结果构造函数
        /// 
        /// 流程名
        public ToolBlockOutputResult(VmProcedure procedure)
        {
            _VmProcedure = procedure;
        }
        /// 
        /// 获取结果属性结果
        /// 
        /// 输出结果Id
        /// 
        public double this[string name]
        {
            get
            {
                try
                {
                    return Math.Round(_VmProcedure.GetFloatOutputResult(name).pFloatValue[0], 3);
                }
                catch (Exception)
                {
                    return 0;
                }
            }
        }

    }

使用方法

            HikCoreLib.VmTool.VmToolBlock vmToolBlock = new HikCoreLib.VmTool.VmToolBlock(0);
            double outX = vmToolBlock.Output["X"];

个人比较喜欢用康耐视的那种输出方式,Output[“X”]这种方式


5保存解决方案。

代码如下(示例):

  public void SaveVmSolution(string _filename)
        {
            try
            {
                VM.Core.VmSolution.Export(_filename);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

总结

海康的视觉库还是提供了蛮多有用的工具的, 对于二次开发还是足够简单快捷的 。 针对SDK算子开发也提供了另外的SDK库, 怎么说呢, 在开发的过程中还是遇到很多不太友善的地方, 例如开发文档写的确实对开发人员不是很友善。 另外WPF开发还真是蛮舒服的。 从Winform到WPF遇到很多坑坑洼洼, 走过来以后, 感觉也是值得回味的一段时光。

你可能感兴趣的:(工作记录,c#,vm)