c#中添加visionpro控件(联合编程)

news2025/5/22 18:13:09

vs添加vp控件

创建窗体应用

右键选择项

点击确定

加载CogAcqfifoTool工具拍照

设置参数保存.vpp

保存为QuickBuild或者job, ToolBlock

加载保存的acq工具

实例化相机工具类

//引入命名空间

using Cognex.VisionPro;

//实例化一个相机工具类

 CogAcqFifoTool cogAcqFifoTool = null;

  //窗口加载 

  private void Form1_Load(object sender, EventArgs e)

  {

      //加载文件夹里面的  相机工具  赋值给  winform  窗口里面的 相机工具 

      //地址  保存好的 相机工具地址  

     string path = @"E:\机器视觉14班\VisionPro\课件\15_ConnectCamera\tb.vpp";

    cogAcqFifoTool = CogSerializer.LoadObjectFromFile(path) as CogAcqFifoTool;

//把加载的工具赋值给winform窗体中的控件

   cogAcqFifoEditV21.Subject = cogAcqFifoTool;  }

设置x64兼容平台

右键属性à

注意:如果保存为QuickBuild, job加载完成之后需要点击复位

点击运行拍照

拍照、保存图像实时显示、关闭相机

拍照

添加button与CogDisplay

Button添加点击事件

 private void button1_Click(object sender, EventArgs e)

 {



     //判断相机是否连接正常

     //cogAcqFifoTool.Operator == null  连接失败

     if (cogAcqFifoTool.Operator!=null)

     {

         //手动调用相机工具的Run方法,运行相机工具

         cogAcqFifoTool.Run();

         //获取相机采集到的图像  显示到cogDisplay1



         cogDisplay1.Image=cogAcqFifoTool.OutputImage;

         //设置百分比显示

         cogDisplay1.Fit();



     }

 }

实时显示

private void button2_Click(object sender, EventArgs e)

 {

     if (button2.Text.Equals("实时显示"))

     {

         button2.Text = "关闭实时";



         cogDisplay1.StartLiveDisplay(cogAcqFifoTool.Operator,false);

     }

     else

     {

         button2.Text = "实时显示";



         //StopLiveDisplay() 关闭实时显示的方法

         cogDisplay1.StopLiveDisplay();

     }

 }

 

保存图像

方式一

 public void SaveImgage1(ICogImage image)

  {

      //写到本地磁盘



      //保存的路径

      string path = Directory.GetCurrentDirectory()+@"\Image1";

      //判断 是否有当前文件夹

      if (!Directory.Exists(path))

      {

         //说明没有当前文件

         //创建文件夹

         Directory.CreateDirectory(path);

      }

      //定义图片名称

      //随机数

      //当前时间

      string imageName = $"{DateTime.Now.ToString("yyyyMMddHHmmsss")}.bmp";





      //1.通过CogImageFileTool工具保存图像

      CogImageFileTool fileTool=new CogImageFileTool();

      fileTool.InputImage = image;



      //保存  

      //参数1:保存的路径

      //参数2:保存原图

      fileTool.Operator.Open($"{path}\\{imageName}",CogImageFileModeConstants.Write);

      //运行工具

      fileTool.Run();

  }

方式二

public void SaveImgage2(CogDisplay display)

 {

     //写到本地磁盘



     //保存的路径

     string path = Directory.GetCurrentDirectory() + @"\Image2";

     //判断 是否有当前文件夹

     if (!Directory.Exists(path))

     {

         //说明没有当前文件

         //创建文件夹

         Directory.CreateDirectory(path);

     }

     //定义图片名称

     string imageName = $"{DateTime.Now.ToString("yyyyMMddHHmmsss")}.jpg";



     // 通过Bitmap保存图像



     Bitmap bmp=   (Bitmap)display.CreateContentBitmap(CogDisplayContentBitmapConstants.Image);

     //保存图像

     //参数1:路径

     //参数2:图像的格式

     bmp.Save($"{path}\\{imageName}", System.Drawing.Imaging.ImageFormat.Jpeg);

 }

窗体关闭 释放相机

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

 {

     //释放相机  

     if (acq.Operator != null)

     {

         //找到硬件 并且释放相机  

         acq.Operator.FrameGrabber.Disconnect(false);

     }

 }

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

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

相关文章

性能测试-mysql监控

mysql常用监控指标 慢查询sql 慢查询:指执行速度低于设置的阀值的sql语句 作用:帮助定位查询速度较慢的sql语句,方便更好的优化数据库系统的性能 开启mysql慢查询日志 参数说明: slow_query_log:慢查询日志开启状态【on&#xf…

游戏引擎学习第301天:使用精灵边界进行排序

回顾并为今天的内容做准备 昨天,我们解决了一些关于排序的问题,这对我们清理长期存在的Z轴排序问题很有帮助。这个问题我们一直想在开始常规游戏代码之前解决。虽然不确定是否完全解决了问题,但我们提出了一个看起来合理的排序标准。 有两点…

【AI生成PPT】使用ChatGPT+Overleaf自动生成学术论文PPT演示文稿

【AI生成PPT】使用ChatGPTOverleaf自动生成学术论文PPT演示文稿 文章摘要:使用ChatGPTBeamer自动生成学术论文PPT演示文稿​​Beamer​​是什么Overleaf编辑工具ChatGPT生成Beamer Latex代码论文获取prompt设计 生成结果 文章摘要: 本文介绍了一种高效利…

局部放大maya的视图HUD文字大小的方法

一、问题描述: 有网友问:有办法局部放大maya的字体吗比如hud中currenttime打开之后画面右下角有个frame 想放大一下能做到吗? 在 Maya 中,可以通过自定义 HUD(Heads-Up Display)元素的字体大小来局部放大特…

初识Linux · NAT 内网穿透 内网打洞 代理

目录 前言: 内网穿透和打洞 NAPT表 内网穿透 内网打洞 正向/反向代理 前言: 本文算是网络原理的最后一点补充,为什么说是补充呢,因为我们在前面第一次介绍NAT的时候详细介绍的是报文从子网到公网,却没有介绍报文…

STM32接收红外遥控器的遥控信号

经过几天早晨的学习,终于把遥控器的红外信号给搞通了,特此记录一下;其实说白了,红外遥控就是高低电平的信号,用时间来区分是二进制的0还是1;然后把这些0或1,在组装成一个32位的数基本就算是完事…

Redis从入门到实战 - 高级篇(下)

一、Redis键值设计 1. 优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过44字节不包含特殊字符 例如:我们的登录业务,保存用户信息&…

GUI实验

题目: 编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。 分析: 导入所需的Java库:程序使用了 javax.swing 包中的一些类来创建图形用户界面。 创建一个 JFrame 对象…

量子计算 | 量子密码学的挑战和机遇

量子计算在密码学中的应用现主要体现在对现有加密算法的威胁上。最著名的例子是Shor算法,该算法能够在多项式时间内分解大整数,从而威胁到基于大数分解的加密算法,如RSA加密。此外,量子计算还可以加速某些类型的密码分析&#xff…

分享一些多模态文档解析思路

多模态文档解析思路小记 作者:Arlene 原文:https://zhuanlan.zhihu.com/p/1905635679293122466 多模态文档解析内容涉及:文本、表格和图片 解析思路v1 基于mineru框架对pdf文件进行初解析 其具备较完整的布局识别和内容识别,并将…

AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC

AI技术I AI技术II RAG 📌 高度凝练表达 RAG (检索增强生成)是一种结合信息检索与生成式人工智能的技术框架,旨在提升大型语言模型(LLM)的输出准确性和实用性。通过在生成响应前引入外部知识库的信息&#…

【实用教程】如何快速搭建一套私有的埋点系统?

这篇教程将基于开源项目-ClkLog,教大家快速搭建一套自有的埋点系统,从0开始完成数据采集、分析与展示,全流程掌控用户行为数据。 ClkLog是一款支持私有化部署的全开源用户行为数据采集与分析系统,兼容Web、App、小程序多端埋点&am…

深入解析 Uniswap:自动做市商模型的数学推导与智能合约架构

目录 1. 自动做市商(AMM)模型的数学推导1.1 恒定乘积公式推导1.2 价格影响与滑点 2. Uniswap 智能合约架构解析2.1 核心合约(Core)2.1.1 工厂合约(Factory)2.1.2 交易对合约(Pair) 2…

React 19版本refs也支持清理函数了。

文章目录 前言一、refs 支持清理函数二、案例演示1.useEffect写法2.React 19改进 的ref写法 总结 前言 React 19版本发布了ref支持清理函数了,这样就可以达到useEffect一样的效果了。为啥需要清理函数呢,这是因为节约内存。 清理事件监听(避…

阿尔泰科技助力电厂——520为爱发电!

当城市的霓虹在暮色中亮起,当千万个家庭在温暖中共享天伦,总有一群默默的 "光明守护者" 在幕后坚守 —— 它们是为城市输送能量的电厂,更是以科技赋能电力行业的阿尔泰科技。值此 520 爱意满满的日子,阿尔泰科技用硬核技…

C#语法篇 :基类子类转换,成员变化情况

在C#中,会有从子类对象到基类对象的转换,这属于C#中的向上扩容,一般可以默认转换。 方法的转换 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ex3._4 …

【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range

深入理解内距(Interquartile Range,IQR)——数据分析中的异常值利器 在日常的数据分析中,我们经常需要识别和处理异常值(Outliers),而内距(Interquartile Range,简称 IQR…

海外盲盒系统开发:重构全球消费体验的科技引擎

当盲盒文化席卷全球,海外盲盒系统开发已成为重构消费体验的核心赛道。数据显示,2025年全球盲盒市场规模突破120亿,东南亚市场年增长率达4540。我们开发的海外盲盒系统,以技术创新为驱动,打造覆盖全链路的全球化解决方案…

高噪声下扩展边缘检测算子对检测边缘的影响

目录 一、常见的边缘检测算子 二、扩展边缘检测算子对检测边缘的影响 三、结论 一、常见的边缘检测算子 Sobel 算子: Prewitt算子;

vuejs处理后端返回数字类型精度丢失问题

标题问题描述 后端返回数据有5.00和3.30这种数据,但是前端展示的时候返回对应分别为5和3.0,小数点后0都丢失了。 接口返回数据展示network-Response: 接口返回数据展示network-Preview: 错误数据效果展示 发现问题 浏览器接口…