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

效果

相关推荐
AttosTek1 天前
阿秒科技SWIR1503BU相机拍摄亚稳态氦原子在磁光阱中的俘获图象
数码相机
潜创微科技3 天前
ITE联阳IT920X系列:USB3.0摄像头走网线传100米——Webcam over IP的三种产品形态
数码相机
康谋自动驾驶4 天前
GMSL2相机ROS2采集链路:多相机时序偏差降低方案
数码相机·自动驾驶·汽车·仿真测试
a1117764 天前
工业视觉软件入门:VisionMaster(VM)、HALCON、VisionPro
嵌入式硬件·数码相机
cxoptics4 天前
机器视觉/工业检测中光源选择?
数码相机
埃科光电5 天前
极速扫描 多元散热:8K高阶TDI线阵相机 阵容升级
图像处理·人工智能·数码相机·计算机视觉·制造
黑马水牛5 天前
Carla仿真系列:5_Carla 四路相机标定与BEV环视拼接
数码相机
在世修行6 天前
从零打造 C# 工业视觉检测系统(五):相机连接、连续取流与双路实时预览
数码相机·c#·视觉检测
格林威7 天前
多相机微秒级对齐:硬件触发 vs PTP(IEEE 1588)方案实战对比
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
xcLeigh7 天前
Unity基础:Camera相机组件详解——透视投影与正交投影的区别
数码相机·unity·游戏引擎