C#在VS中利用VisionPro库读取相机列表及取像

31 篇文章 54 订阅
17 篇文章 11 订阅

在 .NET 环境下通过VisionPro打开相机并获取图像的基本步骤如下:
1.创建CogFrameGrabberGigEs对象,获取连接到图像采集卡的所有相机设备。
2.通过CogFrameGrabberGigEs获取单个对象ICogFrameGrabber的引用,支持的图像格式、相机序列号等信息可以从该接口对象中获取。
3.通过CogFrameGrabber的CreateAcqFifo方法创建ICogAcqFifo接口对象,在使用CreateAcqFifo方法时须指定图像格式、相机端口等信息。
4.通过ICogAcqFifo接口的Acquire等方法可以获取所需图像数据。
5.程序退出前断开CogFrameGrabber与硬件的连接,否则可能导致退出异常。

注意事项:
①相机的IP与网卡在同一网段,关闭防火墙,打开网卡巨帧等物理硬件参数设置正确。
②编译平台选择x64,否则即使相机物理连接没有问题,也可能出现创建CogFrameGrabbers的Count属性为零的情况

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Cognex.VisionPro;

namespace ImageAcquire
{
        public class Form1 : System.Windows.Forms.Form
        {
                private Cognex.VisionPro.Display.CogDisplay cogDisplay1;//用于进行图像显示的VisionPro控件
                ICogAcqFifo myFifo = null;
                ICogFrameGrabber myFrameGrabber = null;
                public Form1()
                {
                        InitializeComponent();
                        InitializeAcquisition();
                }

                protected override void Dispose( bool disposing )
                {
                        if( disposing )
                        {
                                if (components != null)
                                {
                                        components.Dispose();
                                }
                                //5-断开CogFrameGrabber对象与硬件的连接。
                                if(myFrameGrabber!=null)
                                myFrameGrabber.Disconnect(false);
                        }
                        base.Dispose( disposing );
                }

                private void InitializeAcquisition()
                {
                        const string VIDEO_FORMAT = "Sony XC75 640x480";
                         // 1-创建CogFrameGrabbers对象
                        CogFrameGrabbers myFrameGrabbers = new CogFrameGrabbers(); 
                        //2-获取单个ICogFrameGrabber接口对象
                        myFrameGrabber = myFrameGrabbers[0];
                        //3-创建ICogAcqFifo接口对象
                        myFifo = myFrameGrabber.CreateAcqFifo(VIDEO_FORMAT,Cognex.VisionPro.CogAcqFifoPixelFormatConstants.Format8Grey, 0, false);
                }


                private void button1_Click(object sender, System.EventArgs e)
                {
                        int trigNum;
                        //4-通过ICogAcqFifo接口对象的Acquire方法进行图像采集。
                        cogDisplay1.Image = myFifo.Acquire(out trigNum);
                }
        }
}

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值