【VM服务管家】VM4.2平台SDK_6.2 模块操作类

本文档详细介绍了VM4.2平台SDK的模块操作,包括流程设置输入输出图像、模块参数及ROI设置、N点标定、条件检测范围设置、图像源输入图像、几何创建、模板匹配、流程触发与加密狗检测等。通过实例代码展示了如何在二次开发中实现这些功能,帮助开发者更好地理解和运用VM4.2 SDK。

2.2.1 流程操作:通过流程或Group设置输入输出图像的方法

描述
环境:VM4.2 + VS2013及以上
现象:如何在二次开发中设置流程输入输出图像
解答
在这里插入图片描述

打开流程的配置窗口,获取流程1的输出图像,将其设置为流程2的输入图像,虽然在VM中可以通过连线的方式实现,但也可以通过代码的方式实现,C#代码如下 。另外,通过Group设置输入输出图像也是调用同样的接口函数SetInputImage_V2()和GetOutputImageV2(),其中要注意的是,当用代码给流程输入图像时,流程中的其它模块的图像输入源需要订阅流程的图像参数。注意:Mat和Bitmap彩色图转流程输入时,Mat和Bitmap是BGR,流程输入图像是RGB,通道需要交换

C# 
VmProcedure process = (VmProcedure)VmSolution.Instance["流程1"];
InputImageData vmImageData = new InputImageData();
//获取流程1输出图像
ImageBaseData_V2 image =process.ModuResult.GetOutputImageV2("out2");
//设置流程2输入图像
VmProcedure vmProcedure = VmSolution.Instance["流程2"] asVmProcedure;
vmProcedure.ModuParams.SetInputImage_V2("ImageData", image);

问题根因
不熟悉二次开发设置流程输入图像的方法。

2.2.2 模块操作:设置输入图像、参数和ROI

描述
环境:VM4.2+ VS2013及以上
现象:在VM SDK二次开发中,如何设置指定模块的输入图像、模块参数及ROI区域?
解答
首先,我们需要知道,一个VM模块的输入包含几个部分:基本参数(图像输入、ROI区域)、运行参数,以圆查找为例,如下图所示:
在这里插入图片描述在这里插入图片描述

通过VM SDK二次开发,我们可以通过代码去修改指定模块的输入参数。注意:设置输入参数(基本参数),参数配置窗口界面不会显示所设置的参数,此时模块运行,参数永久有效,流程运行,参数一次有效;设置运行参数,参数配置窗口界面会显示所设置的参数,此时模块和流程运行,参数都永久有效
1、设置模块输入图像,以“圆查找模块”为例,首先,添加相应的命名空间IMVSCircleFindModuCs,实现代码如下:

C# 
Mat mat = Cv2.ImRead(path, ImreadModes.Grayscale); //调用OpenCv方法读取图像数据,这里的path为图片路径
InputImageData inputImageData = new InputImageData();//实例化一个输入图像对象
inputImageData.Names.DataName = "InImage";//只能使用默认名称InImage
inputImageData.Names.HeightName = "InImageHeight";//默认InImageHeight
inputImageData.Names.WidthName = "InImageWidth";//默认InImageWidth
inputImageData.Names.PixelFormatName = "InImagePixelFormat";//默认InImagePixelFormat
inputImageData.Data = mat.Data;
inputImageData.DataLen = (uint)(mat.Width * mat.Height);
inputImageData.Height = mat.Height;
inputImageData.Width = mat.Width;
inputImageData.Pixelformat = ImagePixelFormat.IMAGE_PIXEL_FORMAT
_M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值