C#与VisionPro联合开发——跳转页面

1、跳转页面并打开相机

From1 所有代码展示

csharp 复制代码
using System;
using System.IO;
using System.Windows.Forms;
//引入VisionPro命名空间
using Cognex.VisionPro;

namespace ConnectCamera {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
      
    CogAcqFifoTool fifoTool;  
    //窗口加载的Load事件
    private void Form1_Load(object sender, EventArgs e) {
  		//进行相机初始化(这里使用的是本地的vpp文件)
  		string path = Directory.GetCurrentDirectory() + "\\abc.vpp";
  		try {
    		//根据路径读取到vpp文件,初始化fifo对象
    		CogAcqFifoTool fifo = (CogAcqFifoTool)CogSerializer.LoadObjectFromFile(path);
    		if (fifo != null) {
      			MessageBox.Show("相机初始化成功!");
      			if (fifo.Operator.FrameGrabber != null) {
        			fifoTool = fifo;
      			}
    		}
  		} catch (Exception ex) {
    		MessageBox.Show("初始化失败:" + ex.Message);
  		}
	}
      
    //相机
    private void toolStripLabel1_Click(object sender, EventArgs e) {
      //传递到camera页面,这样取景工具在下一个窗体也可以访问到
      FrmCamera frm = new FrmCamera(fifoTool);
      frm.ShowDialog();
    }
  }
}

FrmCamera 代码展示

csharp 复制代码
using System;
using System.Windows.Forms;
using Cognex.VisionPro;

namespace ConnectCamera {
  public partial class FrmCamera : Form {
    //声明 CogAcqFifoTool
    CogAcqFifoTool acq = null;
    VisionTool visionPro = new VisionTool();

    //方法里面传入参数
    public FrmCamera(CogAcqFifoTool fofo) {
      InitializeComponent();
      //显示的是上一个页面传入的图片
      cogAcqFifoEditV21.Subject = fofo;
    }

    //保存图像
    private void toolStripLabel1_Click(object sender, EventArgs e) {
      visionPro.fifoTool = cogAcqFifoEditV21.Subject;
      //提供保存vpp的方法
      visionPro.SaveVpp(cogAcqFifoEditV21.Subject);
    }
  }
}

2、跳转页面并打开ToolBlock

From1 代码展示

csharp 复制代码
using System;
using System.IO;
using System.Windows.Forms;
//引入VisionPro
using Cognex.VisionPro;

namespace ConnectCamera {
  public partial class Form1 : Form {
  public From1(){
       InitializeComponent();      
  }    
   CogToolBlock tb = null;
   
   //窗口的Load事件   
   private void Form1_Load(object sender, EventArgs e) {
      //进行相机初始化(这里使用的是本地的vpp文件)
      string path = Directory.GetCurrentDirectory() + "\\vpp\\tb.vpp";
	  tb = (CogToolBlock)CogSerializer.LoadObjectFromFile(path);
    }

    //打开FrmTB窗口
	private void btnFrmTB_Click(object sender, EventArgs e) {
  		FrmTB frmTB = new FrmTB(tb);
 		frmTB.ShowDialog();
	}
  }
}

FrmTB窗口

FrmTB 代码展示

csharp 复制代码
using System.Windows.Forms;
using Cognex.VisionPro.ToolBlock;

namespace FrameGrabber {
  public partial class FrmTB : Form {
    CogToolBlock mTB = null;

    public FrmTB(CogToolBlock tb) {
      InitializeComponent();
      mTB = tb;
    }

    private void FrmTB_Load(object sender, System.EventArgs e) {
      //把读取到的ToolBlock赋值给当前控件
      cogToolBlockEditV21.Subject = mTB;
    }
  }
}
相关推荐
无心水1 小时前
大语言模型零样本情感分析实战:无需机器学习训练,96%准确率实现指南
人工智能·机器学习·语言模型
艾莉丝努力练剑3 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
千宇宙航6 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第十四课——图像二值化的FPGA实现
图像处理·计算机视觉·fpga开发
橡晟6 小时前
深度学习入门:让神经网络变得“深不可测“⚡(二)
人工智能·python·深度学习·机器学习·计算机视觉
墨尘游子6 小时前
神经网络的层与块
人工智能·python·深度学习·机器学习
倔强青铜37 小时前
苦练Python第18天:Python异常处理锦囊
开发语言·python
Leah01057 小时前
机器学习、深度学习、神经网络之间的关系
深度学习·神经网络·机器学习·ai
PyAIExplorer7 小时前
图像亮度调整的简单实现
人工智能·计算机视觉
u_topian7 小时前
【个人笔记】Qt使用的一些易错问题
开发语言·笔记·qt
珊瑚里的鱼8 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法