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);

     }

 }
相关推荐
爬虫程序猿36 分钟前
如何利用 Java 爬虫根据 ID 获取某手商品详情:实战指南
java·开发语言·爬虫
Singe.Chen38 分钟前
C#中Task.Run的线程管理最佳实践与并发控制
c#·.net·wpf
大模型铲屎官43 分钟前
【Python-Day 16】代码复用基石:详解 Python 函数的定义与调用
开发语言·人工智能·pytorch·python·深度学习·大模型·函数
SSSYUsssyu1 小时前
Java NIO(New I/O)
java·开发语言·nio
TNTLWT1 小时前
Qt功能区:Ribbon控件
开发语言·qt
我最厉害。,。2 小时前
JS 应用&安全案例&泄漏云配置&接口调试&代码逻辑&框架漏洞自检
开发语言·javascript·安全
林的快手2 小时前
基于 Redis 实现短信验证码登录功能的完整方案
java·开发语言·数据库·redis·缓存·bootstrap
看到我,请让我去学习2 小时前
C语言—Linux环境下CMake设置库(动态/静态)
linux·服务器·c语言·开发语言·数据结构
daiwoliyunshang2 小时前
C++ 11(1):
开发语言·c++
why1512 小时前
深信服golang面经
开发语言·后端·golang