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

     }

 }
相关推荐
wjs2024几秒前
SQLite Glob 子句详解
开发语言
youyicc8 分钟前
Qt连接Pg数据库
开发语言·数据库·qt
量子炒饭大师9 分钟前
【C++入门】Cyber底码作用域的隔离协议——【C++命名空间】(using namespace std的原理)
开发语言·c++·dubbo
froginwe1111 分钟前
PHP 魔术常量
开发语言
古城小栈12 分钟前
Rust 的 validator 库
开发语言·后端·rust
froginwe1115 分钟前
《Foundation 选项卡:设计与实现的深入探讨》
开发语言
lsx20240620 分钟前
XSLT `<sort>` 标签详解
开发语言
古城小栈21 分钟前
Rust 的 redis-rs 库
开发语言·redis·rust
楚Y6同学30 分钟前
基于 Haversine 公式实现【经纬度坐标点】球面距离计算(C++/Qt 实现)
开发语言·c++·qt·经纬度距离计算
你怎么知道我是队长1 小时前
C语言---缓冲区
c语言·开发语言