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添加点击事件

cs 复制代码
 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();



     }

 }

实时显示

cs 复制代码
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();

     }

 }

保存图像

方式一

cs 复制代码
 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();

  }

方式二

cs 复制代码
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);

 }

窗体关闭 释放相机

cs 复制代码
private void Form1_FormClosing(object sender, FormClosingEventArgs e)

 {

     //释放相机  

     if (acq.Operator != null)

     {

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

         acq.Operator.FrameGrabber.Disconnect(false);

     }

 }
相关推荐
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于python的电影推荐系统为例,包含答辩的问题和答案
开发语言·python
星辰_mya1 小时前
Elasticsearch线上问题之慢查询
java·开发语言·jvm
前端小菜袅1 小时前
PC端原样显示移动端页面方案
开发语言·前端·javascript·postcss·px-to-viewport·移动端适配pc端
Highcharts.js1 小时前
如何使用Highcharts SVG渲染器?
开发语言·javascript·python·svg·highcharts·渲染器
郝学胜-神的一滴1 小时前
超越Spring的Summer(一): PackageScanner 类实现原理详解
java·服务器·开发语言·后端·spring·软件构建
摇滚侠1 小时前
Java,举例说明,函数式接口,函数式接口实现类,通过匿名内部类实现函数式接口,通过 Lambda 表达式实现函数式接口,演变的过程
java·开发语言·python
阿里嘎多学长1 小时前
2026-02-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Tony Bai1 小时前
“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?
开发语言·后端·golang
打工的小王1 小时前
java并发编程(七)ReentrantReadWriteLock
java·开发语言
lang201509281 小时前
Java并发革命:JSR-133深度解析
java·开发语言