Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式(C#)

本文涉及的产品
数据传输服务DTS,同步至DuckDB 3个月
简介: Baumer工业相机堡盟工业相机如何通过BGAPISDK设置多帧采集模式(C#)

Baumer工业相机

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


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

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


Baumer工业相机BGAPISDK和多帧采集模式的技术背景

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等。


工业相机的多帧采集模式是指相机能够在短时间内连续采集多帧图像。这种模式在很多应用场景中都非常有用,如快速生产线的检测、高速运动物体的追踪等。根据不同相机类型和传感器,多帧采集模式可以实现场景的高速、高精度、连续捕捉。

以下是一些常见的多帧采集模式:


连续采集模式:相机不间断地采集图像,直到手动停止或达到设定的采集帧数。这种模式适用于对实时连续图像分析的场景,例如监控、运动捕捉等。


触发采集模式:在此模式下,相机仅在接收到外部触发信号时才进行图像采集。这种采集方式可以用于对定时采集具有特定要求的场景,如测量设备、质量检测等。


定时采集模式:这种模式下,相机按照设定的时间间隔进行图像采集。此模式可用于对采样频率有特定要求的应用,比如流水线检测、计时分析等。


固定帧率采集模式:相机按预先设定的帧率进行图像采集。此模式用于对图像帧率有固定要求的实时应用,例如运动分析、视觉跟踪等。


高速采集模式:此模式下,相机在连续采集过程中,会通过降低图像分辨率或进行区域感兴趣(ROI)采集,实现较高的帧率。这种模式常用于对高速运动物体的捕捉和跟踪。


多通道采集模式:此模式又称为多帧缓存模式,在这种模式下,相机会同时采集多个通道,以提高图像处理的速度。例如在立体视觉成像,多个彩色通道(红、绿、蓝)等场景中。


在选择相机的多帧采集模式时,需要根据实际应用场景的需求和相机性能来选择适当的模式。此外,在使用多帧采集模式时,还要考虑图像处理和存储的数据流量,以确保系统能够高效运作。


本文介绍的通过集成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;

2.通过BGAPISDK设置多帧采集模式功能

Baumer工业相机设置多帧采集模式功能核心代码如下所示:

if(mDevice!= null)
{
  //设置相机采集模式为多帧采集模式 
  mDevice.RemoteNodeList["AcquisitionMode"].Value = "MultiFrame"; 
  //set 'AcquisitionFrameCount' to 100
  mDevice.RemoteNodeList["AcquisitionFrameCount"].Value = 100;  
    datastreamList = mDevice.DataStreams;
    datastreamList.Refresh(100);
    mDataStream = datastreamList.Values.First();
    mDataStream.Open();
  bufferList = mDataStream.BufferList;
    for (int i = 0; i < 4; i++)
    {
        mBuffer = new BGAPI2.Buffer();
        bufferList.Add(mBuffer);
        mBuffer.QueueBuffer();
    }
    mDataStream.StartAcquisition();
    mDevice.RemoteNodeList["AcquisitionStart"].Execute();
    BGAPI2.Buffer mBufferFilled = null;
    for (int i = 0; i < 12; i++)
    {
        mBufferFilled = mDataStream.GetFilledBuffer(1000);
        if (mBufferFilled == null) { System.Console.Write("Error: Buffer Timeout after 1000 msec\n"); }
        else if (mBuffer.IsIncomplete == true) { System.Console.Write("Error: Image is incomplete\n"); mBufferFilled.QueueBuffer(); }
        else { System.Console.Write(" Image {0} received\n", mBufferFilled.FrameID); mBufferFilled.QueueBuffer(); }
    }
    mDevice.RemoteNodeList["AcquisitionAbort"].Execute();
    mDevice.RemoteNodeList["AcquisitionStop"].Execute();
    mDataStream.StopAcquisition();
    bufferList.DiscardAllBuffers();
    while (bufferList.Count > 0)
    {
        mBuffer = (BGAPI2.Buffer)bufferList.Values.First();
        bufferList.RevokeBuffer(mBuffer);
    }
    mDataStream.Close();
    mDevice.Close();  
}

第一次呈现效果如下所示:

每次连接工业相机执行:mDevice.RemoteNodeList[“AcquisitionStart”].Execute();

工业相机将会按照设定采集100张图像后停止,FrameID将会增加100左右,如下图所示:

6.png


第二次呈现效果如下所示:

FrameID将会增加100左右

5.png


Baumer工业相机循设置多帧采集模式功能的优势

工业相机的多帧采集模式具有很多优势,可以满足各种工业应用场景的需求。以下是一些主要的优势:


提高图像采集速率:多帧采集模式允许在短时间内连续捕获多个图像,从而提高图像采集的速率和效率。这在许多需要高速处理的应用场景中尤为重要,例如质量检测、工件定位等。


提高图像处理性能:通过将采集到的图像数据保存在缓存中,多帧采集模式可以确保相机在实时处理数据时不受CPU速度的限制。这样的设计可以保证系统在进行实时分析时具有较高的图像处理性能。


灵活满足工业应用需求:多帧采集模式具有多种采集方式,可以根据实际应用场景的需求选择合适的模式。例如,在追踪高速运动物体时,可以选择高速采集模式;而需要实时处理和分析图像时,可以选择连续采集模式。


确保高精度和稳定性:在诸如测量设备、质量检测等应用场景中,触发采集模式可以确保相机只在接收到外部触发信号时才捕获图像。这样可以确保图像采集的精确性和稳定性,提高整个系统的性能。


实现同步和异步采集:一些多帧采集模式允许相机在同步和异步模式下工作。这意味着在需要同时采集多个通道数据的场景中,可以保证多个通道之间的同步性,提高图像处理的效率和精度。


提高数据传输效率:多帧采集模式可以减少图像数据传输的开销,特别是对于高速、高分辨率的图像数据。例如,在高速采集模式下,通过降低图像分辨率或采集感兴趣区域(ROI)可以大幅降低数据传输的负担。


总之,工业相机的多帧采集模式有助于提高图像采集速率、处理性能、精度和稳定性等方面的性能,能更好地满足各种工业应用场景的需求。


Baumer工业相机设置多帧采集模式功能的行业应用

工业相机的多帧采集模式具有很多优势,可以满足各种工业应用场景的需求。以下是一些主要的优势:


提高图像采集速率:多帧采集模式允许在短时间内连续捕获多个图像,从而提高图像采集的速率和效率。这在许多需要高速处理的应用场景中尤为重要,例如质量检测、工件定位等。


提高图像处理性能:通过将采集到的图像数据保存在缓存中,多帧采集模式可以确保相机在实时处理数据时不受CPU速度的限制。这样的设计可以保证系统在进行实时分析时具有较高的图像处理性能。


灵活满足工业应用需求:多帧采集模式具有多种采集方式,可以根据实际应用场景的需求选择合适的模式。例如,在追踪高速运动物体时,可以选择高速采集模式;而需要实时处理和分析图像时,可以选择连续采集模式。


确保高精度和稳定性:在诸如测量设备、质量检测等应用场景中,触发采集模式可以确保相机只在接收到外部触发信号时才捕获图像。这样可以确保图像采集的精确性和稳定性,提高整个系统的性能。


实现同步和异步采集:一些多帧采集模式允许相机在同步和异步模式下工作。这意味着在需要同时采集多个通道数据的场景中,可以保证多个通道之间的同步性,提高图像处理的效率和精度。


提高数据传输效率:多帧采集模式可以减少图像数据传输的开销,特别是对于高速、高分辨率的图像数据。例如,在高速采集模式下,通过降低图像分辨率或采集感兴趣区域(ROI)可以大幅降低数据传输的负担。


总之,工业相机的多帧采集模式有助于提高图像采集速率、处理性能、精度和稳定性等方面的性能,能更好地满足各种工业应用场景的需求。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
C# DEV 关于设置gridview 指定单元格字体为红色
C# DEV 关于设置gridview 指定单元格字体为红色
C# DEV TextEdit 设置文本框只能输入数字(整数)
C# DEV TextEdit 设置文本框只能输入数字(整数)
|
5月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
700 27
|
关系型数据库 数据库 PostgreSQL
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
145 0
|
设计模式 C#
36.c#:如何设置MDL窗口
36.c#:如何设置MDL窗口
154 1
|
3月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
246 19
|
4月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
777 0
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
282 3
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
934 12
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
526 4