当前位置: 首页 > article >正文

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

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();//获取相机采集到的图像  显示到cogDisplay1cogDisplay1.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.lryc.cn/news/2383297.html

相关文章:

  • 性能测试-mysql监控
  • 游戏引擎学习第301天:使用精灵边界进行排序
  • CSS attr() 函数详解
  • 【AI生成PPT】使用ChatGPT+Overleaf自动生成学术论文PPT演示文稿
  • 流复备机断档处理
  • Linux 安装 pytorch+cuda+gpu 大模型开发环境过程记录
  • 局部放大maya的视图HUD文字大小的方法
  • 数学复习笔记 16
  • 初识Linux · NAT 内网穿透 内网打洞 代理
  • STM32接收红外遥控器的遥控信号
  • Redis从入门到实战 - 高级篇(下)
  • NGINX常用功能—笔记
  • JVM 性能问题排查实战10连击
  • 【jvm第8集】jvm调优工具(图形化工具)
  • Python测试单例模式
  • 多技术栈 iOS 项目的性能调试实战:从 Flutter 到 Unity(含 KeyMob 工具实测)
  • STM32简易计算机设计
  • GUI实验
  • 量子计算 | 量子密码学的挑战和机遇
  • linux系统查看硬盘序列号
  • 分享一些多模态文档解析思路
  • CSS 选择器入门
  • 【Django】Django DRF 中如何手动调用分页器返回分页数据(APIView,action场景)
  • AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC
  • Vue组件通信方式及最佳实践
  • 【实用教程】如何快速搭建一套私有的埋点系统?
  • 深入解析 Uniswap:自动做市商模型的数学推导与智能合约架构
  • spring配置并使用rabbitmq
  • Android开发——不同布局的定位属性 与 通用属性
  • React 19版本refs也支持清理函数了。