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

效果

相关推荐
PPPPPaPeR.4 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
yunjingtianhe2 天前
EL隐裂检测仪的优势—精准捕捉细微隐裂、微小断栅等隐蔽性极强的隐患
数码相机
PHOSKEY2 天前
3D工业相机如何“读透”每一个字符?快速识别、高精度3D测量
数码相机·3d
听风吹雨yu2 天前
STM32F407-LWIP-Onvif协议控制海康相机
stm32·嵌入式硬件·数码相机
光_辉3 天前
使用代码访问海康相机
数码相机
格林威3 天前
相机的“对焦”和“变焦”,这二者有什么区别?
开发语言·人工智能·数码相机·opencv·算法·计算机视觉·视觉检测
光_辉3 天前
关于相机拍照的一些说明
数码相机
光_辉3 天前
调用海康相机实现事件监测并拍照
数码相机
JMchen1233 天前
Android相机硬件抽象层(HAL)逆向工程:定制ROM的相机优化深度指南
android·开发语言·c++·python·数码相机·移动开发·android studio
psp之魂4 天前
Unity2d Cinemachine Confine 2d失效的问题
数码相机