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

效果

相关推荐
Godspeed Zhao1 小时前
具身智能中的传感器技术40.2——事件相机0.2
人工智能·科技·数码相机·机器学习·事件相机
一起搞IT吧14 小时前
相机Camera日志实例分析之二十:相机Camx【照片后置4800/5000/6400万拍照】单帧流程日志详解
android·嵌入式硬件·数码相机·智能手机
格林威21 小时前
3D相机视觉检测:环境光太强,结构光点云全是噪点怎么办?
开发语言·人工智能·数码相机·计算机视觉·3d·视觉检测·工业相机
格林威1 天前
线阵工业相机:线阵图像出现“波浪纹”,是机械振动还是编码器问题?
开发语言·人工智能·数码相机·计算机视觉·视觉检测·工业相机·线阵相机
格林威1 天前
工业视觉检测:单样本学习 vs 传统监督学习
人工智能·深度学习·数码相机·学习·计算机视觉·视觉检测·工业相机
格林威1 天前
工业视觉检测:两大主流异常检测开源框架深度对比(PatchCore vs SPADE)
开发语言·人工智能·深度学习·数码相机·计算机视觉·视觉检测·工业相机
格林威1 天前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
格林威2 天前
工业视觉项目:如何与客户有效沟通验收标准?
人工智能·数码相机·计算机视觉·视觉检测·机器视觉·工业相机·视觉项目
科研前沿2 天前
什么是时空融合技术?
大数据·人工智能·数码相机·算法·重构·空间计算
格林威2 天前
工业视觉检测:提供可视化UI调试工具的实现方式是什么?
开发语言·人工智能·数码相机·ui·计算机视觉·视觉检测·工业相机