VM SDK开发思路及接口介绍(C++)

前言

VM推出了进行二次开发的SDK(Software Development Kit),VM SDK开发理念是以极少的代码实现图像算法的二次开发集成,从而降低视觉开发人员对视觉处理逻辑代码的维护成本。本文即介绍如何用VM SDK和C++进行联合开发。

开发过程

1.1 方案加载

VM二次开发方案加载:方案后缀为sol(一般建议在VM软件中创建好算法方案,在二次开发中调用),路径为绝对路径。

//创建方案指针
IVmSolution* m_pVmSol;
//加载方案
m_pVmSol = LoadSolution(strPath.c_str(), "");

加载完成后就可以对方案就行操作了,当然VM SDK也提供了用来显示方案的控件(VmProcedureConfigControl 流程配置控件和VmMainViewCongfigControl 主界面控件),无需绑定,只要界面中有这两个中任意控件并初始化,加载完方案后会自动绑定显示。如图所示:

MainView控件

1.2 参数调整

VM二次开发为修改算法参数提供了两种方式:
1.2.1方式1: 用自带的参数配置控件( VmParamsConfigControl 参数配置控件、VmParamsConfigWithRenderControl 参数配置带渲染控件)调参。控件绑定模块代码示例如下:

auto pObject = (CModuParamsBase*)(*m_pVmSol)[CT2A(_T("流程1.圆查找1"))];
m_ParamsRender.SetParamsInfo(pObject, "");

绑定完成控件就会自动填充当前模块的参数配置信息,进行修改即可(注意这里修改的参数并不会实时保存到方案文件里,需要调用方案保存接口才会保存)。
参数配置控件
1.2.2方式2: 调用工具类的模块参数对象(ModuParams)提供的接口或Public属性(可以在开发文档中查阅、也可以在VS中进入相关参数类的定义进行查阅)来修改。示例代码如下:

auto pObject = (IMVSCircleFindModuTool*)(*m_pVmSol)[CT2A(_T("流程1.圆查找1"))];
auto pParams = pObject->GetParamObj();
pParams->RadNum = 20;

1.3 流程执行

VM算法执行方式有多种:二次开发仍然支持VM中配置的硬触发和通讯触发,同时提供了Run接口来支持软触发。软触发示例代码如下:

m_pVmSol->Run();

上述的方案Run接口会触发所有流程同时执行一次,当然也提供了单个控制流程/模块执行的方式,需要先实例化需要Run的流程/模块对象然后调用该对象的Run接口即可触发流程/模块执行,示例代码如下:

auto m_vmPrc = (IVmProcedure*)(*m_pVmSol)[CT2A(str1.GetString())];
m_vmPrc->Run();
IMVSCircleFindModuTool* pObject2 = (IMVSCircleFindModuTool*)(*m_pVmSol
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值