使用C#加载TOOLBLOCK

news2024/11/26 14:37:05

前言

因为Vpp文件类型包含了以下三种

  • QuickBuid
  • Job
  • ToolBlock

不同类型的打开方式不同,需要提前知道vpp是什么类型

例如

这个TB.vpp文件是TOOLBLOCK,就不能直接在visionpro中打开(直接打开需要QuickBuid文件),

 可以先新建一个QuickBuid文件,引入ToolBlock工具,在ToolBlock工具打开

类型查找方式

需要用到此工具,但不能直接打开,需要用命令行

C:\Users\red>cd D:\Visionpro\VisionPro\bin\  //转到此目录

C:\Users\red>vppversion --help //查看帮助文件


//查看对应vpp文件类型及其他内容
C:\Users\red>vppversion -v D:\Visionpro\VisionPro\samples\Programming\ToolBlock\ToolBlockLoad\TB.vpp

 其他

用VS加载TOOLBLOCK

准备工作

可以提前复制vpp和图像文件加入项目中,方便添加相对路径

 代码

需要提前添加引用,添加程序集

编写代码时要参考vpp中的命名规则

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.Blob;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro.ImageFile;

namespace mytbload
{
    public partial class Form1 : Form
    {
        CogImageFileTool mIFTool;
        CogToolBlock tb;
        public Form1()
        {
            InitializeComponent();
            mIFTool = new CogImageFileTool();
            mIFTool.Operator.Open("coins.idb", CogImageFileModeConstants.Read);//设置图像来源
            tb = CogSerializer.LoadObjectFromFile("TB.vpp") as CogToolBlock;//设置vpp文件
            tb.Inputs["FilterLowValue"].Value = 5050;//设置输入参数最小最大面积
            tb.Inputs["FilterHighValue"].Value = 8050;
            tb.Ran += Tb_Ran;//获取结果
        }

        private void Tb_Ran(object sender, EventArgs e)
        {
            //数据更改部分
            //显示是否合格

            lbResult.Text = tb.Outputs["InspectionPassed"].Value.ToString();
            //显示斑点个数
            CogBlobTool mBlobTool = tb.Tools["CogBlobTool1"] as CogBlobTool;
            lbCount.Text = mBlobTool.Results.GetBlobs().Count.ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            mIFTool.Run();//运行图像输入工具
            tb.Inputs["Image"].Value = mIFTool.OutputImage as CogImage8Grey;//设置,传入一张灰度图

            tb.Run();

        }
    }
}

  结果图

visionpro中toolblock图

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

明道云联合EMQ基于IIoT场景技术白皮书

背景介绍 智能物联网设备在IIoT场景中有着广泛的应用,但如何管理和监控这些设备是一个挑战。为了解决这个问题,用户首先需要采集各项设备基础数据,然后在此基础上通过业务系统管理设备。 EMQ作为数据链接底座,可提供高可靠、高性…

ROS入门-第 1 章 ROS概述与环境搭建

目录 第 1 章 ROS概述与环境搭建 1.1 ROS简介 1.1.1 ROS概念 1.1.2 ROS设计目标 1.1.3 ROS发展历程 1.3 ROS快速体验 1.3.1 HelloWorld实现简介 1.3.2 HelloWorld(C版) 步骤 1:创建工作空间 步骤 2:创建发布者节点 步骤…

python——案例16:约瑟夫生者死者链队列

约瑟夫游戏的大意是:一条船上有30个人,因为在海上遇到风暴 因此船长告诉乘客,必须牺牲15个人,并议定30个人围成一圈, 由第一个人数起,依次报数,数到第9人,便把他投入大海中&#xff…

Multimap用法详解

Multimap Multimap 是 Google 的 Guava 库为 Java 引入的一种新集合类型&#xff0c;它允许将多个值存储在单个键下。它被设计为一种替代 Map<K, List> 或 Map<K, Set>&#xff08;JDK 标准集合框架&#xff09;的方案。 Multimap<K, V> 扩展了 AbstractMul…

性能测试基础了解

什么是线程&#xff1f; 线程是程序中的一个执行流&#xff0c;每个线程都有自己的专有寄存器(栈指针、程序计数器等)&#xff0c;但代码区是共享的&#xff0c;即不同的线程可以执行同样的函数。 一般在性能测试过程中&#xff0c;我们认为一个线程就是一个虚拟用户。 什么…

【CSS】背景图定位问题适配不同机型

需求 如图, 实现一个带有飘带的渐变背景 其中头像必须显示飘带凹下去那里 , 需要适配不同的机型, 一不下心容易错位 实现 因为飘带背景是版本迭代中更新的, 所以飘带和渐变背景实则两个div 飘带切图如下 , 圆形部分需要契合头像 <view class"box-bg"><…

json-server的入门

由于前端开发的时候&#xff0c;需要向后端请求数据&#xff0c;有的时候后端还没有准备好&#xff0c;所以需要使用一些简单的静态数据&#xff0c;但是我们更加希望能够模拟请求以及请求回来的过程&#xff0c;这个时候就需要使用json-server Json-Server的介绍 json-server…

从小白到大神之路之学习运维第77天-------Kubernetes集群部署下篇

第四阶段 时 间&#xff1a;2023年8月10日 参加人&#xff1a;全班人员 内 容&#xff1a; Kubernetes集群部署下篇 目录 一、安装flannel 二、安装Dashboard UI &#xff08;一&#xff09;部署Dashboard &#xff08;二&#xff09;开放端口设置 &#xff08;三&a…

课程管理系统springboot学生教师教务java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 课程管理系统springboot 软件架构&#xff1a;Spring…

无涯教程-Perl - keys函数

描述 此函数以列表形式返回哈希的所有键。键以随机顺序返回,但实际上,它们与值和每个值使用相同的顺序。 语法 以下是此函数的简单语法- keys HASH返回值 此函数在标量context中返回哈希中的键数,在列表context中返回键列表。 例 以下是显示其基本用法的示例代码- #!/u…

【uniapp】 软键盘弹出后fixed定位被顶上去问题

问题描述 当手机设计的导航栏为fixed定位上去时&#xff0c;输入框获取焦点就会把顶部自定义的导航栏顶到上面去&#xff0c;如下图所示 解决办法 输入框设置 :adjust-position“false” <input type"text" :adjust-position"false" focus"i…

APP稳定性测试神器之Monkey-随机事件测试

一、Monkey 命令基本参数介绍 0、–help : 列出简单的用法 adb shell monkey -help 1、允许启动手机里面所有的 App &#xff0c; 随机操作 1000 次 adb shell monkey 1000 2、-p : 允许启动 App 的包名 启动一个包名的应用&#xff0c;QQ 的包名为&#xff1a; com.tenc…

vscode的ros拓展(插件)无法渲染urdf

文章目录 事件背景资料调查解决方案 事件背景 之前在vscode中一直用得好好的urdf预览功能&#xff0c;突然在某一天&#xff0c;不行了。 执行 URDF Preview之后&#xff0c;虽然弹出了一个URDF Preview的窗口&#xff0c;但是这个窗口里面啥都没有。没有网格、没有模型。 一开…

组合搜索组件文档

ifeng 组合搜索组件文档 组合搜索组件 1. 先展示一下使用效果: 2. 使用方法 第一步: 在views.py中配置和传参 search_group NbSearchGroup(request,models.TransactionRecord, # 传入表Option(charge_type), # 传入choice字段名 )第二步: 添加查询条件 # 查询条件 .fi…

《兴森大求真》重磅来袭!先进电子电路可靠性大揭秘

兴森实验室&#xff0c;让可靠看得见 前言介绍 芯片性能不断增强、先进封装不断演进&#xff0c;导致封装基板信号互连的IO数量和密度不断增加、PCB的层数增加、孔间距减小、厚径比提升&#xff0c;可靠性的挑战正在加剧。 电路板作为各种电子元器件的载体和电路信号传输的枢…

语音秘书:让录音转文字识别软件成为你的智能工作助手

每当在需要写文章的深夜&#xff0c;我的思绪经常跟不上我的笔&#xff0c;即便是说出来用录音机录下&#xff0c;再书写出来&#xff0c;也需要耗费大量时间。这个困扰了我很久的问题终于有了解决的办法&#xff0c;那就是录音转文字软件。它像个语言魔术师&#xff0c;将我所…

数据结构:交换排序

冒泡排序 起泡排序&#xff0c;别名“冒泡排序”&#xff0c;该算法的核心思想是将无序表中的所有记录&#xff0c;通过两两比较关键字&#xff0c;得出升序序列或者降序序列。 算法步骤 比较相邻的元素。如果第一个元素大于第二个元素&#xff0c;就交换它们。对每一对相邻…

【LeetCode】粉刷房子

粉刷房子 题目描述算法分析编程代码 链接: 粉刷房子 题目描述 算法分析 编程代码 **class Solution { public:int minCost(vector<vector<int>>& costs) {int n costs.size();vector<vector<int>> dp(n1,vector<int>(3));for(int i 1;i&…

医疗行业温湿度轻松搞定,这个方法太简单了吧!

在现代医疗体系中&#xff0c;保障患者的安全和舒适性是至关重要的任务之一。而温湿度监控系统的引入&#xff0c;为实现这一目标提供了切实可行的解决方案。 通过精准地监测和管理医疗环境中的温度和湿度&#xff0c;医疗机构能够营造出稳定、卫生、舒适的就医环境&#xff0c…

vue2项目搭建全步骤-超级详细

文章目录 环境配置node配置安装Vue CLI ​搭建新项目vue create 搭建新项目方法一&#xff1a;选择第一个就好&#xff08;Default是自动安装&#xff0c;按下回车键进行选择&#xff09;方法二&#xff1a;配置自定义设置第一步&#xff1a;选择 Manually select features第二…