VisionMaster SDK开发(C#,C++)的环境配置(最详细,最简单的环境配置)

引言

VM SDK开发又称为VM二次开发,自VisionMaster4.0问世之后,VM二次开发逐渐成熟。通过这种开发方式,视觉算法的内部逻辑由VM平台完成,因此开发者仅需要通过简单的几句代码,即可完成一个视觉软件的基本功能。
VM二次开发常用于机器视觉应用中对界面、日志、产品管理、自定义算法、通讯等有特殊要求的场合,相对于直接使用VM,VM二次开发更加灵活,而相对于直接使用算子包,VM二次开发又有开发简单,开发效率高等优势,所以常常成为VM视觉开发人员的首选。

第一章 VisionMaster的安装

1.1 VisionMaster的下载和安装

首先登录海康机器人官网 https://www.hikrobotics.com/cn/machinevision/service/download?module=0 选择机器视觉,然后点击算法平台
在这里插入图片描述
点击软件下载
在这里插入图片描述
选择VM4.2维护版下载(此处为基础包,如果用到深度学习还需要下载深度学习包)
​​在这里插入图片描述
安装VisionMaster,有加密狗选择加密狗加密,否则可以选择软加密进行试用
在这里插入图片描述
安装完成,测试可以正常打开使用
在这里插入图片描述

第二章 集成开发环境(IDE)下载与安装

2.1 Visual Studio下载

C#(WinForm、WPF),C++(MFC)需要下载Visual Studio 2017,前往官网https://visualstudio.microsoft.com/zh-hans/ 选择2015以上版本(一般推荐VS2017)进行下载。
在这里插入图片描述
打开下载器出现以下界面,选择.Net桌面开发相关以及MFC相关的安装包下载并安装
在这里插入图片描述

2.2 Qt Creator下载

C++(Qt)需要下载qtcreator 5.14.2,前往官网https://download.qt.io/archive/qt/ 选择qtcreator5.9及以下版本(这里以5.14.2为例,开发推荐选择qtcreator5.9)进行下载。
在这里插入图片描述
解压缩后进行安装。
在这里插入图片描述

第三章 VM SDK开发环境配置

3.1 WinForm环境配置(C#)

3.1.1 打开VS2017,新建Windows窗体应用(.Net Framework),框架需要选择.Net Framework4.6.1及以上(这里以.Net Framework4.6.1为例),点击确定。
在这里插入图片描述
点击项目->VMTest属性
在这里插入图片描述在生成中将首选32位前面的对号取消。
在这里插入图片描述
在生成中点击重新生成。
在这里插入图片描述
3.1.2 引用VM SDK开发中需要使用的控件,首先在工具箱的任意选项卡上右键->选择项
在这里插入图片描述
点击浏览
在这里插入图片描述
找到VM安装路径D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Assembly下控件库VMControls.Winform.Release.dll,点击打开。
在这里插入图片描述
在工具箱中搜索vm可以看见全部的VM控件。
在这里插入图片描述
3.1.3 下面需要将VM SDK开发中的需要用到的dll进行引用,引用方式有两种:
1) 第一种可以按照需要使用的库进行手动引用,首先在上面添加的控件中拖拽VmRenderControl控件到界面上。
在这里插入图片描述
此时点开解决方案资源管理器的引用中可以发现VM SDK开发需要使用的基础dll都已经被引用完毕。
在这里插入图片描述
右键每一个被引用的VM SDK基础dll,点击属性,将复制本地修改为false
在这里插入图片描述在这里插入图片描述
之后右键引用->添加引用,点击程序集,搜索并勾选需要使用的VM模块的dll(以圆查找模块为例),点击添加。
在这里插入图片描述
在这里插入图片描述
右键添加的dll,选择属性将复制本地改为false。
在这里插入图片描述
至此第一种手动添加的方法完成环境配置。

2) 第二种可以使用引用添加工具进行引用(操作更简单,推荐使用这种方法)
在VM的安装路径D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Tool下找到引用添加工具ImportRef.exe。
在这里插入图片描述
双击打开引用添加工具选择项目所在的路径,勾选需要引用的VM模块的dll,点击右向箭头,点击确定,进行引用。
在这里插入图片描述
此时再打开之前创建的项目,在解决方案管理器下方的引用中,可以看见所有选中模块的dll都被添加进来了。
在这里插入图片描述
完成环境配置,可以看见使用引用工具会大大方便VM SDK开发的环境配置。写几句简单代码,验证环境配置是否OK。

 public Form1()
{
	InitializeComponent();
	VmSolution.Load("C:\\Users\\zhouyigen\\Desktop\\Demo\\test.sol");
	VmProcedure procedure = VmSolution.Instance["流程1"] as VmProcedure;          
	vmRenderControl1.ModuleSource = procedure;
	procedure.Run();
}

运行后效果为:
在这里插入图片描述

3.2 WPF环境配置(C#)

WPF的环境配置与WinForm非常相似,在新建WPF应用(.NET Framework)之后仅在添加控件处稍有不同,由于其余部分与WinForm完全相同,下面仅阐述不同之处。
3.2.1 新建WPF应用(.NET Framework),其余操作与WinForm完全一致,参考3.1.1。
在这里插入图片描述
3.2.2 任一选项卡右键->选择项->浏览找到找到VM SDK路径D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Assembly下控件库VMControls.WPF.Release.dll,点击打开。其余操作与winform完全一致,参考3.1.2。
在这里插入图片描述
3.2.3 与3.1.3完全相同。
WPF的VM SDK开发环境配置完毕,简单写几句代码,验证环境配置是否OK

  public MainWindow()
  {
	  InitializeComponent();
  	  VmSolution.Load("C:\\Users\\zhouyigen\\Desktop\\Demo\\test.sol");
	  VmProcedure procedure = VmSolution.Instance["流程1"] as VmProcedure;
	  vmRenderControl.ModuleSource = procedure;
	  procedure.Run();
  }

运行后效果如下:
在这里插入图片描述

3.3 MFC环境配置(C++)

3.3.1 打开VS2017,新建MFC应用,点击确定。
在这里插入图片描述
应用程序类型选择基于对话框,全部点击下一步。
在这里插入图片描述
生成的类选择Dlg,点击完成。
在这里插入图片描述
将程序改为64位(VM4.2的模板匹配模块以及深度学习模块仅支持64位系统)
在这里插入图片描述
3.3.2 添加相应的头文件和库文件。
点击项目->属性
在这里插入图片描述
在属性页中点击VC++目录->包含目录->编辑->新行,添加VM安装路径下D:\VM4.2\VisionMaster4.2.0\Development\V4.x\Includes和D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Includes\VS2017两个文件夹。
在这里插入图片描述
在这里插入图片描述
点击VC++目录->库目录->编辑->新行,添加VM安装路径下D:\VM4.2\VisionMaster4.2.0\Development\V4.x\Libraries\win64\C和D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Libraries\win64两个文件夹。

添加完包含目录和库目录之后VC++目录如下所示。
在这里插入图片描述在属性页中点击链接器->输入->附加依赖项->编辑,添加依赖iMVS-6000PlatformSDK.lib(该依赖库存在与VM安装路径下的库目录下),点击确定。
在这里插入图片描述
3.3.3 将VM安装路径下的控件库拷贝到MFC工程的输出目录中。控件库路径为D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Includes\VS2017
在这里插入图片描述
拷贝完成
在这里插入图片描述
在MFC工程的解决方案资源管理器中,将控件库中的头文件和源文件分别添加到工程中,右键头/源文件文件夹->添加->现有项。
在这里插入图片描述
添加完成。
在这里插入图片描述
MFC中环境配置完成,最后写几句简单的代码验证环境是否OK。

// TODO: 在此添加额外的初始化代码

	CString strReMsg = _T("");
	try
	{
		void * pObjPointer = NULL;
		p_VmSol = CreateSolutionInstance(pObjPointer);
		pObjPointer = vmRenderControl.GetObjectPointer();
		p_VmSol = LoadSolution("C:\\Users\\zhouyigen\\Desktop\\test.sol", "");
		p_VmPro = static_cast<IVmProcedure*>((*p_VmSol)["流程1"]);
		vmRenderControl.SetParamsInfo(p_VmPro->GetControlInfo());
		p_VmPro->Run();
	}
	catch (CVmException ex)
	{
		strReMsg.Format(_T("%x"), ex.GetErrorCode());
		strReMsg = _T("0x") + strReMsg + _T(" == LoadSolutionFromFile()");
	}

运行后效果为:
在这里插入图片描述

3.4 Qt环境配置(C++)

3.4.1 打开Qt 5.14.2,新建Qt Widgets应用程序,点击Choose。
在这里插入图片描述
自定义路径和项目名后,全部选择下一步,直到完成。
在这里插入图片描述
3.4.2 在Qt的配置文件VMTest3.pro(项目名.pro)中增加axcontainer。
在这里插入图片描述
3.4.3 添加相应的头文件和库文件
在VMTest3.pro(项目名.pro)下方右键空白处->添加库
在这里插入图片描述
选择外部库->下一步
在这里插入图片描述
点击库文件后的浏览,添加VM安装路径下的库文件D:\VM4.2\VisionMaster4.2.0\Development\V4.x\Libraries\win64\C\iMVS-6000PlatformSDK.lib,点击包含路径后的浏览,添加VM安装路径下的头文件文件夹D:\VM4.2\VisionMaster4.2.0\Development\V4.x\Includes,在平台中选择Windows,链接:动态中选择动态,点击下一步。
在这里插入图片描述
点击完成
在这里插入图片描述
在配置文件VMTest3.pro(项目名.pro)中最后一行中可以看见如下配置代码。
在这里插入图片描述
3.4.4 添加控件库
将VM安装路径下的控件库拷贝到Qt Widgets工程的输出目录中。控件库路径为D:\VM4.2\VisionMaster4.2.0\Development\V4.x\ComControls\Includes\QT
在这里插入图片描述
拷贝完成
在这里插入图片描述
将控件库的头文件和源文件分别添加到工程中,右键Headers/Sources->添加现有文件
在这里插入图片描述
添加完成。
在这里插入图片描述
Qt中环境配置完成,最后写几句简单的代码验证环境是否OK。

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    p_VmSol=CreateSolutionInstance();
    ui->axWidget->dynamicCall("GetObjectPointer()");
    LoadSolution("C:\\Users\\zhouyigen\\Desktop\\Demo\\test.sol","");
    p_VmPro=static_cast<IVmProcedure*>((*p_VmSol)["流程1"]);
    ui->axWidget->dynamicCall("SetParamsInfo(qlonglong)",reinterpret_cast<qlonglong>(p_VmPro->GetControlInfo()));
    p_VmPro->Run();
}

运行后效果为:
在这里插入图片描述
至此VM SDK开发的环境配置已经全部完成。

总结

在使用VisionMaster4.0进行二次开发时,有一个开发者头疼的问题,即二次开发的环境配置繁琐,而且往往一个二次开发程序有几百兆之多,这给开发人员带来一些不便。而在VM4.2中上述这些问题都得到了解决,使VM二次开发变得更简单、灵活。同时VM4.2二次开发的一大特点是其运行效率相对于VM4.0二次开发有一个显著提高,这也给开发者和使用者带来了更好的开发和使用体验。

VM4.0二次开发视频链接(C#):链接:https://pan.baidu.com/s/1O_EAKDniyognlD0oKIGCJA 提取码:l8c5

  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VisionMaster SDK是一个用于开发智能视频分析和计算机视觉应用程序的软件开发工具包。它提供了一套丰富的API和库,为开发人员提供了构建高性能、高精度的视觉应用程序的能力。 使用VisionMaster SDK可以进行各种视觉任务的开发,如目标检测、目标跟踪、行人检测、人脸识别、车牌识别等。开发人员可以根据具体需求使用SDK中提供的函数和类来设计和实现自己的算法和模型,从而实现对图像和视频进行深度分析和处理。 VisionMaster SDK开发过程主要分为以下几个步骤: 1. 安装和配置SDK:首先需要下载并安装VisionMaster SDK,并按照指引进行配置,包括设置开发环境、导入依赖库等。 2. 理解API文档:开发人员需要仔细阅读和理解VisionMaster SDK的API文档,了解SDK提供的函数和类及其使用方法和限制。 3. 设计和实现算法:根据实际需求,开发人员可以选择合适的算法和模型,并使用SDK提供的函数和类进行设计和实现。这包括数据预处理、特征提取、模型训练与优化等步骤。 4. 测试和评估:完成算法和模型的开发后,开发人员需要进行测试和评估,包括对输入图像和视频的处理效果、算法的准确性和鲁棒性等进行验证。 5. 部署和优化:在测试和评估通过后,可以将开发的视觉应用程序部署到实际场景中。此时可以进行性能优化、硬件加速等操作,以提高应用程序的效率和响应速度。 总结来说,VisionMaster SDK开发人员提供了强大的功能和工具,能够帮助他们快速构建高性能的智能视频分析和计算机视觉应用程序。通过合理的开发流程和实践,可以实现精确、高效、稳定的视觉应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值