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

效果

相关推荐
xiangxiang-8 小时前
相机模数转换
人工智能·数码相机·计算机视觉
cheungxiongwei.com19 小时前
OpenCV 相机标定流程指南
人工智能·数码相机·opencv
徐行tag1 天前
三角测量——用相机运动估计特征点的空间位置
人工智能·数码相机·视觉slam
长安er1 天前
解锁摄影潜能:全面解析相机镜头的选择与使用逻辑
数码相机·摄影·镜头·摄影三要素·ev·曝光补偿
陈皮话梅糖@2 天前
FFmpeg + OpenGL ES 美颜相机教程大纲
数码相机·ffmpeg
mian4012 天前
相机开启状态下拔出SD卡导致的数据丢失问题及恢复方法
经验分享·数码相机
可乐续命!4 天前
镜头放大倍率和像素之间的关系
数码相机
幻想趾于现实4 天前
C# Winform怎么设计串口,客户端和相机控件界面显示
数码相机·c#