【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)

文章目录

  • [1 Winform 窗口界面 (带渲染的参数配置控件)](#1 Winform 窗口界面 (带渲染的参数配置控件))
  • [2 配置代码](#2 配置代码)
  • [3 运行测试](#3 运行测试)
  • [4 不带渲染的参数配置控件 对比](#4 不带渲染的参数配置控件 对比)
    • [4.1 添加控件](#4.1 添加控件)
    • [4.2 代码及演示效果](#4.2 代码及演示效果)

模块参数配置

本教程介绍如何在VM二次开发中对模块参数进行配置

1 Winform 窗口界面 (带渲染的参数配置控件)

VmParamsConfigControl是不带渲染的参数配置控件;
VmParamsConfigWithRenderControl是带渲染的参数配置控件;

在上一将的基础上继续添加渲染及数据结果获取,显示在Winform界面 【条码/一维码识别】

在Form1窗口,添加GroupBox 和VmParamsConfigWithRenderControl控件;

2 配置代码

在方案执行,按钮下面添加参数配置代码

在上一将的基础上继续添加渲染及数据结果获取,显示在Winform界面 【条码/一维码识别】

第一行代码为实例化一个模块;

需要通过字符识别类来定义并实例化一个字符识别模块对象;

c 复制代码
private void button3_Click(object sender, EventArgs e)
{
    //模块参数配置
    //第一行代码为实例化一个模块;
    //需要通过字符识别类来定义并实例化一个字符识别模块对象;
    IMVSOcrModuCs.IMVSOcrModuTool ocrTool = (IMVSOcrModuCs.IMVSOcrModuTool)VmSolution.Instance["流程1.字符识别1"];
    vmParamsConfigWithRenderControl1.ModuleSource = ocrTool;

    VmSolution.Instance.SyncRun();//此函数,会同步执行一次方案中的所有流程
    listBox1.Items.Add("方案执行一次成功!");
    listBox1.TopIndex = listBox1.Items.Count - 1;

    //获取结果,分为渲染结果和数据结果;
    //渲染结果显示在界面上,
    //数据结果获取后用户可进行输出或其它处理,本示例将数据结果显示在消息区;

    //将其与先前VM中配置好输出的流程1进行绑定
    VmProcedure vmProcess1 = (VmProcedure)VmSolution.Instance["流程1"];
    //然后将渲染控件的显示源ModuleSource绑定流程1对象
    vmRenderControl1.ModuleSource = vmProcess1;
    //通过此代码即可获取到格式化中订阅的字符识别结果strValue
    string ocrResult = vmProcess1.ModuResult.GetOutputString("out1").astStringVal[0].strValue;
    string ocrNum = vmProcess1.ModuResult.GetOutputInt("out0").pIntVal[0].ToString();
    listBox1.Items.Add("OCR识别结果:" + ocrResult);
    listBox1.TopIndex = listBox1.Items.Count - 1;
    listBox1.Items.Add("字符个数:" + ocrNum);
    listBox1.TopIndex = listBox1.Items.Count - 1;

}

如果出现下面拨错,是因为目前还未添加模块的引用

右键引用-->添加引用-->搜索ocr--->选择IMVSOcrModuCs这个库添加

3 运行测试

  • OCR识别--VM方案介绍:

    • 案例目的是为了展示传统OCR识别工具对字符的识别过程:

    • 1,用特征匹配和位置修正对字符定位;

    • 2,字符识别模块ROI框出需要识别的字符,然后提取字符并训练。

    • 注:OCR具有两个识别结果,用户可根据两个结果进行其它操作。

  • 程序运行加载方案后,

直接在流程区中双击VM模块即可在弹窗中 进行参数配置;

代码中的对象绑定的是流程1中的字符识别1模块,

方案执行后,便可以在参数配置区看到这个字符识别模块的参数配置;

带渲染的参数配置控件相比于普通参数配置控件多出一个图像渲染显示区域;

  • 点击方案执行 验证效果,
    区域中显示出了字符识别模块的参数配置界面;
    在运行参数中更改算法参数,可以在渲染界面实时查看效果;

4 不带渲染的参数配置控件 对比

4.1 添加控件

接下来演示另一个参数配置控件,

首先调整下界面布局,将控件的Dock属性设置为None,然后调整控件的位置和大小;

将不带渲染的参数配置控件VmParamsConfigControl拖拉到参数配置区中 ;

参数配置区

上方是,不带渲染的参数配置控件

下方是, 带渲染的参数配置控件(渲染就是显示处理的图像)

4.2 代码及演示效果

在方案执行按钮中添加一行代码

c 复制代码
  vmParamsConfigControl1.ModuleSource = ocrTool;//不带渲染的参数配置控件
c 复制代码
private void button3_Click(object sender, EventArgs e)
{
    //模块参数配置
    //第一行代码为实例化一个模块;
    //需要通过字符识别类来定义并实例化一个字符识别模块对象;
    IMVSOcrModuCs.IMVSOcrModuTool ocrTool = (IMVSOcrModuCs.IMVSOcrModuTool)VmSolution.Instance["流程1.字符识别1"];
    vmParamsConfigWithRenderControl1.ModuleSource = ocrTool;// 带渲染的参数配置控件(渲染就是显示处理的图像)
    vmParamsConfigControl1.ModuleSource = ocrTool;//不带渲染的参数配置控件

    VmSolution.Instance.SyncRun();//此函数,会同步执行一次方案中的所有流程
    listBox1.Items.Add("方案执行一次成功!");
    listBox1.TopIndex = listBox1.Items.Count - 1;

    //获取结果,分为渲染结果和数据结果;
    //渲染结果显示在界面上,
    //数据结果获取后用户可进行输出或其它处理,本示例将数据结果显示在消息区;

    //将其与先前VM中配置好输出的流程1进行绑定
    VmProcedure vmProcess1 = (VmProcedure)VmSolution.Instance["流程1"];
    //然后将渲染控件的显示源ModuleSource绑定流程1对象
    vmRenderControl1.ModuleSource = vmProcess1;
    //通过此代码即可获取到格式化中订阅的字符识别结果strValue
    string ocrResult = vmProcess1.ModuResult.GetOutputString("out1").astStringVal[0].strValue;
    string ocrNum = vmProcess1.ModuResult.GetOutputInt("out0").pIntVal[0].ToString();
    listBox1.Items.Add("OCR识别结果:" + ocrResult);
    listBox1.TopIndex = listBox1.Items.Count - 1;
    listBox1.Items.Add("字符个数:" + ocrNum);
    listBox1.TopIndex = listBox1.Items.Count - 1;

}

参数配置区

上方是,不带渲染的参数配置控件

下方是, 带渲染的参数配置控件(渲染就是显示处理的图像)

相关推荐
大飞pkz4 小时前
【设计模式】题目小练1
开发语言·设计模式·c#·题目小练
lljss20204 小时前
C# 每个chartArea显示最小值、平均值、最大值
开发语言·c#
wearegogog1235 小时前
C#与Twincat 2 实现上位机控制软PLC功能
开发语言·c#
军训猫猫头6 小时前
12.NModbus4在C#上的部署与使用 C#例子 WPF例子
开发语言·c#·wpf
Eiceblue6 小时前
使用 C# 设置 Excel 单元格格式
开发语言·后端·c#·.net·excel
LostXerxes7 小时前
C#的继承和多态
c#
薄荷撞~可乐9 小时前
C#高并发与并行理解处理
开发语言·c#
sali-tec9 小时前
C# 基于halcon的视觉工作流-章33-矩状测量
开发语言·人工智能·算法·计算机视觉·c#
王维志10 小时前
Unity Embedded Browser文档翻译
unity·c#
FlYFlOWERANDLEAF10 小时前
DevExpress中Word Processing Document API学习记录
学习·c#·word