Visionpro 相机连接 拍照, 保存,实时显示,关闭相机

cs 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ImageFile;
using Cognex.VisionPro.QuickBuild;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro.ToolGroup;

namespace 拍照_保存_实时显示_关闭相机
{
    public partial class Form2 : Form
    {
        public CogAcqFifoTool acq;
        public ICogImage Image;
        public CogJob Job;
        public CogJobManager JobManager;
        public CogToolGroup toolGroup;
        public CogToolBlock tb;
        public Form2(CogAcqFifoTool acqFifoTool,CogToolBlock toolBlock)
        {
            InitializeComponent();
            acq= acqFifoTool;
            tb= toolBlock;
        }

        private void returnMain_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void takephoto_Click(object sender, EventArgs e)
        {
            if (acq.Operator == null)
            {
                MessageBox.Show("相机连接失败", "相机设备");
            }
            else
            {
                acq.Run();
                cogRecordDisplay1.Fit();
                cogRecordDisplay1.Image=acq.OutputImage;
            }
        }

        private void shownow_Click(object sender, EventArgs e)
        {
            if (shownow.Text.Equals("实时显示"))
            {
                shownow.Text = "关闭实时";
                cogRecordDisplay2.Fit();
                cogRecordDisplay2.StartLiveDisplay(acq.Operator,false);
            }
            else
            {
                shownow.Text = "实时显示";
                cogRecordDisplay2.StopLiveDisplay();
                cogRecordDisplay2.Image=new CogAcqFifoTool().OutputImage;
            }
        }

        private void savepicture_Click(object sender, EventArgs e)
        {
            DialogResult s=MessageBox.Show("Image","是否要保存",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
            if(s==DialogResult.Yes)
            {
                SaveImage();
                MessageBox.Show("保存成功");
            }
            else
            {
                MessageBox.Show("已取消");
            }
        }
        private void SaveImage()
        {
            string path=Directory.GetCurrentDirectory()+@"\Image";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            CogImageFileTool cogImageFile=new CogImageFileTool();
            cogImageFile.InputImage=acq.OutputImage;
            string imagen = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.bmp";
            cogImageFile.Operator.Open($"{path}\\{imagen}",CogImageFileModeConstants.Write);
            cogImageFile.Run();
        }

        private void savetb_Click(object sender, EventArgs e)
        {
            string path = Directory.GetCurrentDirectory() + @"\VIP\block.vpp";
            tb.Run();
            CogSerializer.SaveObjectToFile(tb, path);
        }

        private void entertb_Click(object sender, EventArgs e)
        {
             JobManager=CogSerializer.LoadObjectFromFile(Directory.GetCurrentDirectory()+@"\VIP\QuickBuild1.vpp")as CogJobManager;
            Job = JobManager.Job(0);
            toolGroup=Job.VisionTool as CogToolGroup;
            cogJobEdit1.Subject = Job.VisionTool as CogToolGroup;
            cogToolBlockEditV21.Subject = tb;
        }
    }
}
cs 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;

namespace _3_拍照_保存_实时显示_关闭相机
{
   
    public partial class Form1 : Form
    {
        public CogAcqFifoTool fifoTool;
        public string path=Directory.GetCurrentDirectory()+@"\VIP\acq.vpp";
        public CogToolBlock cogToolBlock;
        public ICogImage cogImage;
        public Form1()
        {
            InitializeComponent();
            bt();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (fifoTool.Operator != null)
            {
                fifoTool.Operator.FrameGrabber.Disconnect(false);
            }
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            fifoTool=CogSerializer.LoadObjectFromFile(path)as CogAcqFifoTool;
            cogAcqFifoEditV21.Subject = fifoTool;
            fifoTool.Run();
        }
     
        private void button1_Click(object sender, EventArgs e)
        {
           if(fifoTool.Operator == null)
           {
                MessageBox.Show("相机连接失败");
           }
           else
           {
                Form2 form2 = new Form2(fifoTool,cogToolBlock);
                form2.ShowDialog();
           }
           
        }
        private void bt()
        {
            cogToolBlock = CogSerializer.LoadObjectFromFile(Directory.GetCurrentDirectory() + @"\VIP\ToolBlock.vpp") as CogToolBlock;
        }
    }
}

效果

相关推荐
周胡杰10 小时前
鸿蒙-跨设备互通,设备互通提供跨设备的相机、扫描、图库访问能力,平板或2in1设备可以调用手机的相机、扫描、图库等功能。
数码相机·华为·自动化·电脑·harmonyos·鸿蒙·鸿蒙系统
惊鸿醉13 小时前
Unity中的数字孪生项目:两种输入方式对观察物体的实现
数码相机·unity·游戏引擎
子燕若水1 天前
关于UE5的抗锯齿和TAA
数码相机·计算机视觉·ue5
3DVisionary1 天前
蓝光三维扫描技术:高效精密测量相机镜头底座注塑件
数码相机·3d·3d扫描·蓝光三维扫描 注塑件检测·精密测量 相机镜头底座·全尺寸检测 高效检测·有限元分析 极端环境测试
吴梓穆1 天前
UE5 相机裁剪面
数码相机·ue5
布吉岛呀~1 天前
相机模型--CMOS和CCD的区别
数码相机
Lovely Ruby1 天前
Hbuilder 上的水印相机实现方案 (vue3 + vite + hbuilder)
数码相机
AndrewHZ2 天前
【图像处理基石】什么是去马赛克算法?
图像处理·数码相机·算法·计算机视觉·isp算法·手机影像·去马赛克算法
qq_282195312 天前
Cypress EZ-USB CX3 适配输出imx586相机
单片机·嵌入式硬件·数码相机
云钥科技2 天前
云钥科技柔性上料振动蜘蛛手工作原理及应用范围详细介绍
数码相机