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

news/2024/12/29 3:17:57/

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

  • Baumer工业相机
  • Baumer工业相机BGAPISDK和多帧采集模式的技术背景
  • Baumer工业相机通过BGAPISDK设置多帧采集模式功能
    • 1.引用合适的类文件
    • 2.通过BGAPISDK设置多帧采集模式功能
  • Baumer工业相机循设置多帧采集模式功能的优势
  • Baumer工业相机设置多帧采集模式功能的行业应用

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.引用合适的类文件

代码如下(示例):

#include <stdio.h>
#include <iostream>
#include "bgapi2_genicam/bgapi2_genicam.hpp"
using namespace BGAPI2;#include <iostream>

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

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

int main()
{int returncode = 0;int camfound = 0;long loopcounter = 0;while (true) {try{loopcounter++;SystemList* systemList = SystemList::GetInstance();systemList->Refresh();for (BGAPI2::SystemList::iterator it_s = systemList->begin(); it_s != systemList->end() && camfound == 0; it_s++){System* pSystem = it_s->second;  // gige, usb3, ..pSystem->Open();InterfaceList* interfaceList = pSystem->GetInterfaces();interfaceList->Refresh(100);for (BGAPI2::InterfaceList::iterator it_i = interfaceList->begin(); it_i != interfaceList->end() && camfound == 0; it_i++){Interface* pInterface = it_i->second;pInterface->Open();DeviceList* deviceList = pInterface->GetDevices();deviceList->Refresh(100);if (deviceList->size() > 0){Device* pDevice = deviceList->begin()->second;pDevice->Open();std::cout << pDevice->GetModel() << "(" << pDevice->GetSerialNumber() << ")" << " Loop " << loopcounter << std::endl;pDevice->GetRemoteNode("TriggerMode")->SetString("Off");BGAPI2::String sExposureNodeName = "";if (pDevice->GetRemoteNodeList()->GetNodePresent("ExposureTime")) {sExposureNodeName = "ExposureTime";}else if (pDevice->GetRemoteNodeList()->GetNodePresent("ExposureTimeAbs")) {sExposureNodeName = "ExposureTimeAbs";}pDevice->GetRemoteNode(ExposureNodeName)->SetDouble(10000.0);//设置相机采集模式为多帧采集模式pDevice->GetRemoteNode("AcquisitionMode")->SetString("MultiFrame");//set 'AcquisitionFrameCount' to 100pDevice->GetRemoteNode("AcquisitionFrameCount")->SetValue(100);DataStreamList* datastreamList = pDevice->GetDataStreams();datastreamList->Refresh();DataStream* pDataStream = datastreamList->begin()->second;pDataStream->Open();BGAPI2::BufferList* bufferList = pDataStream->GetBufferList();Buffer* pBuffer = NULL;for (int i = 0; i < 4; i++){pBuffer = new BGAPI2::Buffer();bufferList->Add(pBuffer);pBuffer->QueueBuffer();}pDataStream->StartAcquisitionContinuous();pDevice->GetRemoteNode("AcquisitionStart")->Execute();Buffer* pBufferFilled = NULL;for (int i = 0; i < 5; i++)//for (int i = 0; i < 200; i++){pBufferFilled = pDataStream->GetFilledBuffer(1000);if (pBufferFilled == NULL) { std::cout << "Error: Buffer Timeout after 1000 msec" << std::endl; }else if (pBufferFilled->GetIsIncomplete() == true) { std::cout << "Error: Image is incomplete" << std::endl; pBufferFilled->QueueBuffer(); }else { std::cout << " 670.cpp" << " Image " << pBufferFilled->GetFrameID() << " Timestamp " << pBufferFilled->GetTimestamp() << std::endl; pBufferFilled->QueueBuffer(); }}if (pDevice->GetRemoteNodeList()->GetNodePresent("AcquisitionAbort")) {pDevice->GetRemoteNode("AcquisitionAbort")->Execute();}pDevice->GetRemoteNode("AcquisitionStop")->Execute();pDataStream->StopAcquisition();bufferList->DiscardAllBuffers();while (bufferList->size() > 0){pBuffer = bufferList->begin()->second;bufferList->RevokeBuffer(pBuffer);delete pBuffer;}pDataStream->Close();pDevice->Close();deviceList->Refresh(100);camfound = 1;}pInterface->Close();}pSystem->Close();}if (camfound == 0) {std::cout << "no camera found on any system or interface." << std::endl;}camfound = 0;}catch (BGAPI2::Exceptions::IException& ex){returncode = (returncode == 0) ? 1 : returncode;std::cout << "Error in function: " << ex.GetFunctionName() << std::endl << "Error description: " << ex.GetErrorDescription() << std::endl << std::endl;}BGAPI2::SystemList::ReleaseInstance();}std::cout << "Input any number to close the program '670_Loop_SystemList_GetFilledBuffer.cpp':";int endKey = 0;std::cin >> endKey;return returncode;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


http://www.ppmy.cn/news/578596.html

相关文章

米哈游:《八重樱 · 桃源恋歌》短片制作技术分享

本文将由米哈游技术总监贺甲分享米哈游最新动画短片《八重樱桃源恋歌》中的制作技术。 《八重樱桃源恋歌》米哈游使用Unity实时渲染的MMD次世代动画短片《八重樱桃源恋歌》&#xff0c;今年2月在B站发布以来&#xff0c;获得了260多万的播放量。《八重樱桃源恋歌》这部短片&a…

【枭·音乐】用音乐酝酿情愫,谱仙侠长歌

秋日伊始&#xff0c;凉薄的北风便已预告了凛冬渗骨之寒。刚刚从国庆长假恢复日常状态&#xff0c;捧着热咖啡和奶茶&#xff0c;眼神惺忪的你&#xff0c;是否想起草长莺飞的早春&#xff0c;舍却凡事浪迹天涯的幻想&#xff1f;由软星科技&#xff08;北京&#xff09;有限公…

Android12 获取音频输出列表设置音频输出通道

1.获取音频输出列表 有个需求是APP端能够获取所有音频输出列表,研究了很长时间源码,发现只有这个API合适。 AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS); 这个API能够获取到设备上所有可用的输出,且APP可以调用。 2.设置音…

Unity 3D开发--音频管理

接手了前同事们的一个元宇宙的项目&#xff0c;里面有各楼层不同的背景音乐&#xff0c;人物的一些动作音效&#xff0c;一些书籍音频&#xff0c;语音问答&#xff0c;投屏语音通信&#xff0c;靠近播放视频等&#xff0c;需要对音频做各种播放、暂停、切换、停止等操作&#…

服务全球开发者!灵雀云与Ubuntu推出一体化云原生解决方案

近日&#xff0c;国内企业级云原生解决方案的领军企业灵雀云&#xff0c;与操作系统软件Ubuntu的原厂企业Canonical&#xff08;以下简称Ubuntu&#xff09;共同宣布达成战略合作。双方将提供操作系统软件Ubuntu与云原生开放平台ACP的深度融合一体化解决方案&#xff0c;为开发…

U3D游戏开发框架(四)——音频管理器

一&#xff1a;目的 游戏音频的播放在任何游戏中都占据非常重要的地位&#xff0c;音频的播放可以分为两种&#xff0c;一种为游戏音乐&#xff0c;另一种为游戏音效。前者适用于较长的音乐&#xff0c;如游戏背景音乐。第二种适用于比较短的游戏音乐&#xff0c;如开枪瞬间的…

【7. 无源演奏音乐】

无源演奏音乐 树梅派无源蜂鸣器C调音符与频率对照表 树梅派无源蜂鸣器 /**************************************** 时间&#xff1a;* 内容&#xff1a;无源蜂鸣器演奏&#xff0c;简单版****************************************/#include<wiringPi.h> #include<s…

Unity3d--基于对象池优化思想的音频管理系统

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Resource文件夹下的音效片段目录二、采用单例模式作为全局访问方式三、音效类型分类四、播放音效的组件池的数据对象五、播放时的参数封装六、音效播放管理…