Baumer工业相机堡盟工业相机如何使用BGAPI SDK控制相机数据流的开启和关闭(C#)

Baumer工业相机

Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。

Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。

Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。

Baumer工业相机BGAPI SDK的技术背景

Baumer工业相机的BGAPI SDK是Baumer公司开发的针对其相机产品系列的一套软件开发工具包。该SDK提供了一组API,使开发人员可以编写专业应用程序,从而控制、捕获、处理和显示Baumer相机的图像和数据。BGAPI SDK支持多种编程语言,包括C++、C#、Visual Basic、LabVIEW、Matlab等,并提供了大量示例代码和文档,以帮助用户轻松上手,快速完成应用程序的开发。

BGAPI SDK提供了丰富的功能,可以控制Baumer相机的所有参数,包括曝光时间、增益、白平衡、触发模式等,以及支持各种数据格式,例如Raw、BMP、JPG等,同时还提供了实时显示、数据采集、图像处理等功能,为开发人员提供了高度定制化的解决方案。此外,BGAPI SDK还支持多相机系统的开发,并可支持各种计算机操作系统,如Windows、Linux、Mac OS等。

本文介绍的使用BGAPI SDK控制相机数据流的方式可以相机在需要工作的时候进行工作、不需要工作时则停止工作,可以使得相机在低功耗下运行,不仅可以节能还可以延长工业相机的使用寿命。

Baumer工业相机使用BGAPISDK控制相机数据流的方式

下面介绍在C#里Baumer工业相机如何使用BGAPISDK控制相机数据流的方式

1.引用合适的类文件

代码如下(示例):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Data;
using System.Globalization;
using System.Diagnostics;
using System.IO;
using HalconDotNet;

2.使用BGAPISDK控制相机数据流的方式

核心代码如下所示:

//停止数据流,相机重新开始
private void StopDataStream_Click(object sender, EventArgs e)
{
    if (pDevice != null)
    {
        try
        {
            pDevice.RemoteNodeList["AcquisitionStop"].Execute();

            foreach (BGAPI2.DataStream CurDataStream in ListDataStream)
            {
                CurDataStream.StopAcquisition();
            }

            foreach (BGAPI2.DataStream CurDataStream in ListDataStream)
            {
                CurDataStream.StartAcquisition();
            }
            StopDataStream.Enabled = false;
        }
        catch (BGAPI2.Exceptions.IException ex)
        {
            string str18;
            str18 = string.Format("ExceptionType:{0}! ErrorDescription:{1} in function:{2}", ex.GetType(), ex.GetErrorDescription(), ex.GetFunctionName());
            MessageBox.Show(str18);
        }

    }
}



//相机暂停采集命令,重新连接后相机继续之前的FrameID信息继续下一步的采集
private void StopGrabImage_Click(object sender, EventArgs e)
{
           
    string SelectedCameraName = (string)CamNamebox.SelectedItem;
    if (CamNamebox.SelectedIndex >= 0)
    {
        foreach (BGAPI2.Device CurDevice in listDev)
        {
            BGAPI2.Device curDevice = CurDevice;
            string CurDeviceSN = curDevice.SerialNumber;
            if (SelectedCameraName.Contains(CurDeviceSN))
            {
                try
                {
                    curDevice.RemoteNodeList["AcquisitionStop"].Execute();
                    ConnectCamera.Enabled = true;
                    StopGrabImage.Enabled = false;
                    buttonSwTrigger.Enabled = false;
                    OnNotifyShowRecieveMsg("相机:" + curDevice.DisplayName + ":" + curDevice.SerialNumber + "已暂停采集");
                    ShowFrame_hThread1.Abort();//关闭显示帧率和网口数据通量的线程
                }
                catch (BGAPI2.Exceptions.IException ex)
                {
                    string ErrorInfo;
                    ErrorInfo = string.Format("ExceptionType:{0}! ErrorDescription:{1} in function:{2}", ex.GetType(), ex.GetErrorDescription(), ex.GetFunctionName());
                    MessageBox.Show(ErrorInfo);
                }
            }

        }
    }
}


    

2.使用BGAPISDK控制相机数据流的演示

1.数据流开启后相机将会进行持续的采图,FrameID持续增长

如下图所示:
在这里插入图片描述
此时的暂停指令只能使得相机的采图停止,但是数据流不会关闭清空

2.数据流关闭后相机将会另一组数据流的采集,FrameID从零开始

如下图所示:
在这里插入图片描述
从上面的测试验证,可以看出相机数据流停止后,再重新连接相机后,相机的FrameID从0开始重新计数,这意味着相机相当于重新开始工作。

Baumer工业相机使用BGAPISDK控制相机数据流的优势

控制相机数据流的开启和关闭可以带来以下好处:

减少数据传输流量:在一些应用场景下,相机的数据量可能会非常大,而且很多数据并不是每次都需要,通过控制打开和关闭数据量,可以减少数据传输流量,降低系统负载,并且可以节省存储空间。

减少数据处理时间:通过控制数据流的开启和关闭来限制相机发出的数据量,可以减少系统数据的时间,提高整个系统的运行效率。

防止数据丢失:对于一些高要求的应用,如智能检测系统或者安防系统等,每一张图片都非常重要,通过控制数据流可以缓解相机传输数据期间可能遇到的网络或者系统问题,如数据丢失等问题。

综上所述,通过控制相机数据流的开启和关闭,可以提高整个系统的效率和可靠性,并且能够更方便地处理和管理大量数据,使其更好地满足特定应用的需求。

Baumer工业相机使用BGAPISDK控制相机数据流的行业应用

工业相机SDK控制相机数据量的开启和关闭的行业应用有很多,包括:

工业自动化:在工业自动化领域中,相机数据量往往非常大。通过使用SDK控制相机数据量的开启和关闭,可以有效降低数据传输和处理的复杂度和时间,提高生产线的效率和稳定性。

智能制造:在智能制造领域中,相机常用于检测和识别产品,例如质检和排零工作。使用SDK控制相机数据量的开启和关闭可以快速过滤和处理大量数据,提高检测和识别的速度和准确性。

机器视觉:在机器视觉领域中,相机常用于捕捉和处理图像,以支持各种应用,如自动驾驶、智能交通、安防监控等。控制相机数据量的开启和关闭可以帮助系统处理大量数据,以支持各种应用场景。

医疗保健:在医疗保健领域中,相机被广泛应用于影像学和诊断工作。使用SDK控制相机数据量的开启和关闭可以帮助减轻系统压力,提高诊断的准确性和速度。

科学研究:在科学研究领域中,相机常用于捕捉各种样本和实验数据展示。通过使用SDK控制相机数据量的开启和关闭,可以提高数据收集和处理的效率和准确性,以支持各种科学研究项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用佳能相机官方sdk进行再次封装,实现如下功能: //python回调函数接口 typedef void (*PROPERTYEVENT_CALLBACK)(EdsUInt32 inEvent, EdsUInt32 inPropertyID, EdsUInt32 inParam); PROPERTYEVENT_CALLBACK g_property_callback[MAX_CAMERA]; typedef void (*OBJECTEVENT_CALLBACK)(EdsUInt32 inEvent); OBJECTEVENT_CALLBACK g_object_callback[MAX_CAMERA]; typedef void (*STATEEVENT_CALLBACK)(EdsUInt32 inEvent, EdsUInt32 inParam); STATEEVENT_CALLBACK g_state_callback[MAX_CAMERA]; //初始化 EDSDK_API EdsError Init(EdsUInt16 index); EDSDK_API EdsError UnInit(EdsUInt16 index); //拍照 EDSDK_API EdsError HalfShutterAFC(EdsUInt16 index); EDSDK_API EdsError TakePicture(EdsUInt16 index, char** path); EDSDK_API EdsError TakePictureNoAF(EdsUInt16 index, char** path); //录像 EDSDK_API EdsError StartVideo(EdsUInt16 index); EDSDK_API EdsError StopVideo(EdsUInt16 index, char** path); //取景器实时预览 EDSDK_API EdsError StartLiveView(EdsUInt16 index); EDSDK_API EdsError EndLiveView(EdsUInt16 index); EDSDK_API EdsError DownloadEvfImage(EdsUInt16 index, void** pointer, EdsUInt64* length); //调焦 EDSDK_API EdsError SetCameraFocus(EdsUInt16 index, short focus); EDSDK_API void SetFocusCount(EdsUInt16 index, long count); EDSDK_API unsigned int CalFocus(unsigned short objectDistance); EDSDK_API void AutoFocusInit(EdsUInt16 index); EDSDK_API void AutoFocus(EdsUInt16 index, unsigned int objectDistance); //属性 EDSDK_API EdsError SetProperty(EdsUInt16 index, EdsPropertyID propertyID, EdsInt32 property); EDSDK_API EdsError GetProperty(EdsUInt16 index, EdsPropertyID propertyID, EdsUInt32* data); EDSDK_API EdsError GetEvent(); //属性衍生 //切换拍照、录像模式 EDSDK_API EdsError SetDevMode(EdsUInt16 index, eCameraMode mode); EDSDK_API EdsError GetDevMode(EdsUInt16 index, EdsUInt16* mode); //拍摄AE模式 EDSDK_API EdsError SetMovieAEMode(EdsUInt16 index, eAEMode mode); EDSDK_API EdsError GetMovieAEMode(EdsUInt16 index, EdsUInt32* mode); //AF模式 EDSDK_API EdsError SetAFMode(EdsUInt16 index, eAFMode mode); EDSDK_API EdsError GetAFMode(EdsUInt16 index, EdsUInt32* mode); 。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格林威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值