海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

前言

        第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。

运行效果

开发环境

        C#, WPF, vs2022, 海康视觉算法平台VisionMaster 4.3.0

基本概念

        

上图这些.sol为后缀的是vm的方案文件。

打开方案文件,下图显示的是【方案】里的【流程】,一个方案可以有多个流程,一对多关系。

下图中绿色圈出来叫【模块】

步骤

        1.在VM算法平台中创建方案并测试通过。

                相关的文章可以看本专栏以前的文单。下面也会给出链接。

        2.创建WPF项目。

        3.添加引用。(重点)

                3.1 找到VM安装目录下的二开DLL文件目录。

                        我是安装在D盘的:D:\Program Files\VisionMaster4.3.0\Development\V4.x\ComControls\Assembly

                        大家的目录应该和我的差不多,可能只是盘符不一样。

                3.2 在项目中添加引用

                        

        这么多DLL具体引用什么呢?下图

这是基本引用。

如果用到了其他模块要添加对应该的DLL文件。也很好找。根据VisionMaster算法平台SDK开发指南V4.3.1(.NET)相关的接口函数中看到的第一段名称同名。

以找圆为例:

上图中用红线标出来的就是DLL文件名。

在用这个模块相关的类时要先添加引用。

代码

        窗体代码 如果要添加VM相关控件。要在窗体中添加引用

xmlns:vm="clr-namespace:VMControls.WPF.Release;assembly=VMControls.WPF.Release" 

按钮代码

        获取方案结果

        

/// <summary>
/// 获取方案结果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetResult_Click(object sender, RoutedEventArgs e)
{
    //加载方案
    VmSolution.Load("F:/二期VM视觉学习/标定相机找圆心20240614.sol",string.Empty);

    //使用流程名称获取流程对象
    VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance["流程1"];

    //运行一次流程才能拿到结果
    vmProcedure.SyncRun();

    IMVSCircleFindModuTool circleFitResult = (IMVSCircleFindModuTool)VmSolution.Instance["流程1.圆查找1"];
    if (circleFitResult != null)
    {
        MessageBox.Show("获取到的圆心坐标:X:" + circleFitResult.ModuResult.OutputCircle.CenterPoint.X.ToString("0.0000") + ",Y:" + circleFitResult.ModuResult.OutputCircle.CenterPoint.Y.ToString("0.0000"));
    }
    else
    {
        MessageBox.Show("失败");
    }
}

注意:加载方案时路径不建议写死。比较好的方法是将方案文件复制到bin目录下的一个固定文件夹里,再用获取程序当前路径的方式获取后再拼接。

// 获取应用程序的执行目录
string appDirectory = Assembly.GetExecutingAssembly().Location;
appDirectory = appDirectory.Substring(0, appDirectory.LastIndexOf("\\") + 1);
string imagePathRelative = "VmProCess/标定相机找圆心20240614.sol";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/717310.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

台灯护眼是真的吗?家长挑选台灯看这篇!

中国当前正面临着日益严峻的近视防控挑战。随着各学段学生近视率的普遍偏高&#xff0c;以及高度近视占比的不断上升&#xff0c;这一问题已经对学生的身体健康构成了严重威胁&#xff0c;并对国家的未来发展和社会稳定构成了潜在风险。随着教育资源的日益丰富和普及&#xff0…

俄罗斯方块小游戏(附源码)

游戏展示 一.导包 import turtle import random 二.定义一个Block类 定义一个Block类&#xff0c;用于表示游戏中的方块&#xff0c;包含颜色和形状。 class Block:def __init__(self, color, tiles):self.color colorself.tiles tiles三.定义了7个不同的Block对象 定义了7…

散户必须知道!个股场外期权期限是什么?

今天带你了解散户必须知道&#xff01;个股场外期权期限是什么&#xff1f;场外个股期权是一种交易双方买卖未来某个时间以某个价格购买或卖出某种资产的权力&#xff0c;允许投资者以相对较小的期权费用获得名义本金&#xff0c;以获取更高的回报。 个股场外期权期限是什么&am…

MySQL之优化服务器设置(六)

操作系统状态 操作系统会提供一些帮助发现操作系统和硬件正在做什么的工具。其中包括最常用的工具iostat和vmstat。如果系统不能提供它们中的任何一个&#xff0c;有可能提供了相似的替代品。当然目的不是让大家熟练使用iostat和vmstat&#xff0c;而是告诉大家用类似的工具诊…

css布局方式汇总

css布局解决方案 文章目录 css布局解决方案水平居中布局1. text-algin:center使用场景原理优点与缺点 2. margin:0 auto原理优点和缺点 3. inline-blocktext-align属性配合使用原理优点和缺点 4. table配合margin属性使用原理优点和缺点 5. absolutetransform属性的translateX原…

周跳的探测及修复

前言&#xff1a; 本章节代码均在Gitee中开源&#xff1a; 导航工程: 导航工程及其有关的所有项目 - Gitee.comhttps://gitee.com/Ehundred/navigation-engineering/tree/master/%E5%8D%AB%E6%98%9F%E5%AF%BC%E8%88%AA%E5%8E%9F%E7%90%86/%E5%91%A8%E8%B7%B3%E6%8E%A2%E6%B5%…

Excel批量一列转多列多行

你在公司或学校是否遇到过对人员进行分组&#xff0c;你是否曾一个一个复制粘贴&#xff0c;如只有100人&#xff0c;尚有时间一一分组&#xff0c;如1000人&#xff0c;甚至更多&#xff0c;不知分到“地老天荒”是否可以完成&#xff01; 今天刘小生分享一个方法“用替换等号…

OZON爆款新品推荐丨OZON珠宝首饰好款推荐

在OZON平台上&#xff0c;珠宝首饰一直以其独特的魅力和精致的工艺吸引着广大消费者。以下是几款推荐的OZON珠宝首饰好款&#xff1a; Top1 隐形树藤项链 MARIOLA Ювелирное колье серебро 925 леска невидимка женское сере…

一个示例学习C语言到汇编层面

给出以下代码 #include<stdio.h> int main() {int x 0, y 0, z 0;while (1) {x 0;y 1;do {printf("%d\n", x);z x y;x y;y z;} while (x < 255);}return 0; }我们把这个程序编写成32位程序&#xff0c;然后我们放入IDA中进行分析 .text:0080187…

DAY04 HTMLCSS

文章目录 一 表单(1) 数字控件(2) 颜色控件(3) 日期控件(4) 月份控件(5) 星期控件(6) 搜索控件(7) 范围控件 二 浮动框架三 结构化标签四 CSS1 CSS概述2 CSS的编写位置1. inline style 行内样式2. inner style 内部样式3. outer style 外部样式4. 小结 3 CSS选择器1. 通用选择器…

OSPF 动态路由协议(思科、华为)

#交换设备 OSPF 动态路由协议 一、基本概念 1.中文翻译&#xff1a;开放式最短路径优先路由协议&#xff08;open shortest path first&#xff09;&#xff0c;是一个内部网关路由协议&#xff08;一个自治系统内&#xff09;2.也称为&#xff1a;链路状态路由协议&#xf…

【操作系统原理】三级项目-基于并行计算的的单词统计

前言 这是当时选修《操作系统原理》时需要做的一个实验项目&#xff0c;也是三级项目&#xff0c;选题选的是第二章有关并行计算的实验&#xff0c;这个项目有匿名版的PPT和视频&#xff0c;可以私我&#xff0c;发送“基于并行计算的的单词统计”即可获取整个项目的压缩包。 …

java:【@ComponentScan】和【@SpringBootApplication】扫包范围的冲突

# 代码结构如下&#xff1a; 注意【com.chz.myBean.branch】和【com.chz.myBean.main】这两个包是没有生重叠的。 主程序【MyBeanTest1、MyBeanTest2、MyBeanTest3】这两个类是在包【com.chz.myBean.main】下 # 示例代码 【pom.xml】 <dependency><groupId>org.…

基本表的定义:创建表、修改表、删除表

一、创建数据库与打开数据库 学生选课数据库 学生&#xff08;学号&#xff0c;姓名&#xff0c;性别&#xff0c;出生时间&#xff0c;所在系&#xff09; 课程&#xff08;课程编号&#xff0c;课程名&#xff0c;先修课程号&#xff09; 选课&#xff08;学号&#xff0…

【机器学习300问】120、该怎么用RNN来构建语言模型?

一、基本概念补充 在构建语言模型之前补充几个自然语言处理&#xff08;NLP&#xff09;基本概念。 &#xff08;1&#xff09;语料库&#xff08;Corpus&#xff09; ① 语料库的定义 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;语料库是一个经过组织和加工…

二叉树-根据先序遍历和中序遍历序列重建二叉树

目录 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质&#xff1a; 2.确定根节点及左右子树 3.对子树进行递归操作 4.递归返回条件 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质&#xff1a; 先序遍历&am…

探索比特币多面体

目录 前言 一、比特币挖矿 1.挖矿设备的演化 2.矿池 二、比特币脚本 1.交易结构 2.交易的输入 3.交易的输出 4.P2PK 输入输出脚本的形式 实际执行情况 5.P2PKH 输入输出脚本的形式 实际执行情况 6.P2SH 输入输出脚本的形式 7.进一步说明 8.多重签名 9.脚本执…

Graphviz——安装、绘制可视化协议状态机(Python)

1、简介 Graphviz 是一个开源的图形可视化软件包&#xff0c;特别擅长绘制有向图和无向图等结构化图形。它非常适合用于生成各种图表&#xff0c;例如流程图、网络图、状态机图、层次结构图等。Graphviz 的主要组件 dot: 这是Graphviz最常用的布局程序&#xff0c;用于创建有向…

(杭州中科微)全星座定位导航模块GM32的应用推荐及性能指标解析

1、 关于GNSS的原理&#xff1a; 它是通过接收来自地球轨道上的W星信号&#xff0c;并利用信号传播延迟的原理&#xff0c;计算与接收器之间的距离&#xff0c;从而实现对接收器位置的精确测量。 而GNSS的定位原理&#xff1a;W星导航系统GNSS接收机主要是通过三边测量法&…

Postgresql配置SSL连接

1、系统需要有openssl、openssl-devel包 yum -y install openssl openssl-devel 2、查看当前数据库是否使用openssl编译 pg_config|grep CONFIGURE 如果没有重新编译 make clean make && make install 3、服务器端证书配置 服务器端需生成三个文件: root.crt(根证…