海康二次开发学习笔记3-渲染及数据结果获取

渲染及数据结果获取

流程的结果分为渲染和数据的结果,在进行结果获取之前需要在VM中先对流程进行配置

流程配置

如果要获取流程1的结果,点击流程左边的设置按钮,在显示设置中配置渲染结果,在多选框中配置所需显示的类型.参数名称可以自行设置,关联关系绑定对应类型的模块

1. 显示设置

在这里插入图片描述

2. 输出设置

输出格式化结果和字符个数

在这里插入图片描述

确认保存

3. 关闭VM,打开vs二次开发

  1. 添加VmRenderControl控件

在这里插入图片描述

  1. 编辑方案执行事件
        private void button3_Click(object sender, EventArgs e)
        {
            VmSolution.Instance.SyncRun();
            listBox1.Items.Add("方案运行成功.");
            listBox1.TopIndex = listBox1.Items.Count - 1;

            //获取结果,分为渲染结果和数据结果

            VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance["流程1"];

            vmRenderControl1.ModuleSource = vmProcedure;

            string ocrResult = vmProcedure.ModuResult.GetOutputString("out").astStringVal[0].strValue;
            string ocrNum = vmProcedure.ModuResult.GetOutputInt("out0").pIntVal[0].ToString();

            listBox1.Items.Add("字符识别结果:"+ocrResult);
            listBox1.TopIndex = listBox1.Items.Count - 1;
            listBox1.Items.Add("个数:" + ocrNum);
            listBox1.TopIndex = listBox1.Items.Count - 1;

        }

4. 运行程序

在这里插入图片描述

  1. 选择路径

在这里插入图片描述

  1. 加载方案

在这里插入图片描述

  1. 方案执行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看到,结果已被正常渲染,获取到的字符信息和字符个数也在消息显示区正常显示.

参数模块配置

海康二次开发学习笔记4-参数模块配置

### 海康威视VM图像与HALCON图像格式互转 为了实现海康威视VisionMaster (VM) 图像与 HALCON 图像之间的相互转换,可以采用中间媒介的方式完成这一过程。具体来说,可以通过文件存储作为桥梁,在两个不同的库之间传递图像数据。 #### 将 VM 图片转换为 Halcon 图片 当从 VisionMaster 获取到图像后,先将其保存为常见的图像格式文件(如 BMP, JPG),再通过 HALCON 的读取函数加载该文件成为 HObject 类型的对象。 ```csharp // C# 代码片段用于导出 VM 图像至本地磁盘 vmRenderControl.SaveOriginalImage("C:\\temp\\image_from_vm.bmp"); ``` 接着利用 HALCON API 来载入这张临时保存下来的图片: ```cpp #include <halcon.h> using namespace HalconCpp; try { // 使用 HALCON 函数读取由 VM 存储的位图文件 HObject ho_Image; ReadImage(ho_Image, L"C:\\temp\\image_from_vm.bmp"); } catch (HException &e){ std::cout << e.ErrorMessage() << std::endl; } ``` #### 将 Halcon 图片转换为 VM 图片 相反方向的操作同样遵循类似的逻辑——即先把 HALCON 中处理过的图像写入硬盘上的某个位置,之后让 VisionMaster 去读取这个外部资源。 ```cpp // 利用 HALCON 库将图像对象写出成文件形式 WriteImage(Image, "bmp", 0, 1, L"C:\\temp\\image_for_vm.bmp"); ``` 随后可以在 C# 程序里调用相应接口加载此文件进入 VM 控制组件中显示或者进一步加工: ```csharp // 加载之前由 HALCON 创建并储存于指定路径下的图像文件给 VM 显示控件 vmRenderControl.LoadImageFromFile("C:\\temp\\image_for_vm.bmp"); ``` 值得注意的是上述过程中涉及到跨平台的数据交换可能会带来兼容性和效率方面的问题;因此建议尽可能在同一框架内部解决问题以减少不必要的开销[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值