当前位置: 首页 > news >正文

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像(C#)

  • Baumer工业相机
  • Baumer工业相机定序器功能的技术背景
  • Baumer工业相机通过BGAPI SDK使用定序器功能
    • 预期的相机动作
    • 定序器的工作原理
  • Baumer工业相机通过BGAPI SDK使用定序器功能具体实现方法
    • 1.引用合适的类文件
    • 2.通过NEOAPI SDK开启定序器功能实现一次触发控制三个光源分别采集三张图像
  • Baumer工业相机使用定序器功能实现一次触发控制三个光源开关分别采集三张图像的优势
  • Baumer工业相机使用定序器功能实现一次触发控制三个光源开关分别采集三张图像的行业应用

Baumer工业相机

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

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

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

Baumer工业相机堡盟相机在SDK中提供了一种在收到单个触发信号时同时通过相机的IO信号控制三个光源,并分别采集三种不同光源下的图像的方法。

下面介绍实现一次触发控制三个光源开关分别采集三张图像的方法可以使用Baumer工业相机自带的定序器的功能

Baumer工业相机定序器功能的技术背景

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

工业相机的 定序器Sequencer 功能是一种高级的编程功能,允许用户将多种拍摄参数设置成独立的序列,实现对相机的自动切换控制以满足多种不同的应用需求。使用 Sequencer 功能可以实现在一个拍摄周期内,完成多个曝光、图像传输和处理任务,从而提高工程效率和质量。

Baumer工业相机通过BGAPI SDK使用定序器功能


下面介绍在C#里Baumer工业相机如何通过BGAPI SDK进行定序器编程:实现一次触发控制三个光源开关分别采集三张图像

预期的相机动作

从理论上讲,该方法首先要求相机设置为触发模式,当每次收到触发信号时,再控制三个不同的IO信号去控制光源,然后再采集不同光源条件下的三张图像。

定序器的工作原理

从理论上讲,该方法首先要求相机设置为触发模式,当每次收到触发信号时,在同样的曝光时间内采集两张图像。

考虑到定序器的基本原理,定序器的参数设置比预想的要复杂得多:
设置硬件触发输入参数和 GPIO 输出。
开启定序器设置模式,循环设置三组定序器功能,分别控制不同的光源打开和关闭,并设置相应的曝光参数。
关闭定序器设置模式,开启相机定序器功能和图像采集。

Baumer工业相机通过BGAPI SDK使用定序器功能具体实现方法

下面介绍在C#里Baumer工业相机如何通过BGAPI SDK使用定序器实现一次触发控制三个光源开关分别采集三张图像

在使用定序器时,可能需要提前设置,以便可视化显示在什么时间应当发生的事件。在本例中,设置非常简单:

第一张图像的采集由硬件触发(通过“Line0”输入实现)——Line0同时触发定序器启动

第一组定序器(Set0)开始配置并触发第一张图像的采集

第二组定序器组(Set1)开始配置并触发第二张图像的采集

第二组定序器组(Set2)开始配置并触发第三张图像的采集

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

2.通过NEOAPI SDK开启定序器功能实现一次触发控制三个光源分别采集三张图像

Baumer工业相机设置定序器功能模式核心代码如下所示:


// STOP ACQUISITION AND LOAD DEFAULT PARAMETERS
mDevice.RemoteNodeList["AcquisitionStop"].Execute();
mDevice.RemoteNodeList["UserSetSelector"].Value = "Default";
mDevice.RemoteNodeList["UserSetLoad"].Execute();// CONFIGURING GPIO “Line0” AS THE TRIGGER INPUT
mDevice.RemoteNodeList["TriggerMode"].Value = "On";
mDevice.RemoteNodeList["TriggerSource"].Value = "Line0";
mDevice.RemoteNodeList["TriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["TriggerDelay"].Value = (double)0.0;
mDevice.RemoteNodeList["LineSelector"].Value = "Line0";
mDevice.RemoteNodeList["LineInverter"].Value = false;
mDevice.RemoteNodeList["LineDebouncerHighTimeAbs"].Value = (double)1.0;
mDevice.RemoteNodeList["LineDebouncerLowTimeAbs"].Value = (double)1.0;// 定义三个用于控制光源的 IO 线路
string[] lightControlLines = { "Line3", "Line4", "Line5" };// SWITCH TO SEQUENCER CONFIG MODE
mDevice.RemoteNodeList["SequencerConfigurationMode"].Value = "On";for (int i = 0; i < 3; i++)
{// 设置当前定序器步骤mDevice.RemoteNodeList["SequencerSetSelector"].Value = (long)i;mDevice.RemoteNodeList["SequencerSetLoad"].Execute();// 打开对应的光源mDevice.RemoteNodeList["LineSelector"].Value = lightControlLines[i];mDevice.RemoteNodeList["UserOutputValue"].Value = true;// 设置触发模式mDevice.RemoteNodeList["TriggerMode"].Value = "On";// 可以在这里设置不同的 ROI 或其他参数,这里为了简单保持一致mDevice.RemoteNodeList["OffsetX"].Value = (long)0;mDevice.RemoteNodeList["OffsetY"].Value = (long)0;mDevice.RemoteNodeList["Width"].Value = (long)320;mDevice.RemoteNodeList["Height"].Value = (long)240;mDevice.RemoteNodeList["SequencerPathSelector"].Value = (long)0;mDevice.RemoteNodeList["SequencerTriggerSource"].Value = "ExposureActive";mDevice.RemoteNodeList["SequencerTriggerActivation"].Value = "RisingEdge";// 设置下一个定序器步骤if (i < 2){mDevice.RemoteNodeList["SequencerSetNext"].Value = (long)(i + 1);}else{mDevice.RemoteNodeList["SequencerSetNext"].Value = (long)0; // 循环回到第一个步骤}mDevice.RemoteNodeList["SequencerSetSave"].Execute();// 关闭对应的光源mDevice.RemoteNodeList["LineSelector"].Value = lightControlLines[i];mDevice.RemoteNodeList["UserOutputValue"].Value = false;
}mDevice.RemoteNodeList["SequencerSetStart"].Value = (long)0;// SEQUENCER CONFIG END
mDevice.RemoteNodeList["SequencerConfigurationMode"].Value = "Off";// START CAMERA SEQUENCER
mDevice.RemoteNodeList["SequencerMode"].Value = "On";
mDataStream.StartAcquisition();
mDevice.RemoteNodeList["AcquisitionStart"].Execute();// WAIT FOR TRIGGERS TO CAPTURE IMAGES WITH CHANGING LIGHT CONDITIONS
// 这里可以添加代码来等待触发信号并处理采集到的图像// STOP CAMERA SEQUENCER
mDevice.RemoteNodeList["AcquisitionStop"].Execute();
mDataStream.StopAcquisition();
mDevice.RemoteNodeList["SequencerMode"].Value = "Off";

Baumer工业相机使用定序器功能实现一次触发控制三个光源开关分别采集三张图像的优势

使用工业相机的定序器功能进行一次触发实现多种图像采集具有多方面的优势:

  1. 同步性能: 定序器功能允许用户在一次触发下实现多种图像采集,确保各个相机之间的采集动作同步,以保持数据的一致性,有助于进行后续的分析和处理。

  2. 时间精度: 通过定序器功能,可以精确地控制各个相机的采集时序,确保在同一时刻获取不同角度或不同参数的图像,避免时间上的偏差。

  3. 提高效率: 一次触发实现多种图像采集可以减少操作复杂度和时间成本,提高采集效率,尤其在需要同时获取多个视角或条件下的图像时效果显著。

  4. 数据一致性: 通过定序器功能,获得的图像数据在时间上是同步的,这有助于保持数据的一致性和准确性,在实时监控、运动分析等应用中尤为重要。

  5. 灵活性: 定序器功能允许用户根据实际需求自定义不同相机的触发顺序和采集条件,提供了更大的灵活性和可操作性。

总的来说,使用定序器功能进行一次触发实现多种图像采集可提高同步性能、时间精度、效率、数据一致性和灵活性,有助于工业相机在复杂场景下的应用和数据处理。

Baumer工业相机使用定序器功能实现一次触发控制三个光源开关分别采集三张图像的行业应用

工业相机使用定序器功能进行一次触发实现多种图像采集在许多行业中发挥着重要作用。以下是一些典型的行业应用示例:

  1. 制造业: 在制造业中,工业相机经常用于质检、定位和测量。通过定序器功能,可以一次触发相机获取不同角度、光照条件和过滤条件下的图像,以帮助提高产品质量检测的准确性和效率。

  2. 医疗影像: 在医疗影像领域,工业相机的定序器功能可以用于多角度拍摄或同时拍摄不同模态的影像,例如X光片和红外影像,从而为医生提供更全面的影像信息来进行诊断和治疗。

  3. 交通监控: 工业相机在交通监控领域的应用也十分广泛。通过定序器功能,可以实现同时对车辆、行人和交通信号灯等进行多角度、多条件的监控拍摄,以提高交通监控系统的全面性和精度。

  4. 农业领域: 在农业领域,工业相机的定序器功能可用于同时采集植物生长过程中的多种图像信息,如植物生长的速度、形态学特征和病虫害检测等,以实现对植物生长情况的全面监测和分析。

  5. 机器人视觉: 在工业机器人视觉系统中,可以利用定序器功能实现机器人在执行任务时同时获取多种角度的图像,从而帮助机器人更准确地感知周围环境,提高工作效率和精度。

这些行业应用示例表明,工业相机使用定序器功能进行一次触发实现多种图像采集,可为许多行业带来更全面、高效的视觉检测和数据采集解决方案。

相关文章:

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现一次触发控制三个光源开关分别采集三张图像&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机定序器功能的技术背景Baumer工业相机通过BGAPI SDK使用定序器功能预期的相机动作定序器的工作原理 Baumer工业相机通过BGAP…...

网络安全用centos干嘛 网络安全需要学linux吗

网络安全为啥要学Linux系统&#xff0c;据不完全统计&#xff0c;Linux系统在数据中心操作系统上的份额高达70%。它一般运行于服务器和超级计算机上。 所以我们日常访问的网站后台和app后端都是部署在Linux服务器上的&#xff0c;如果你不会Linux系统操作&#xff0c;那么很多…...

【React】react-redux+redux-toolkit实现状态管理

安装 npm install reduxjs/toolkit react-reduxRedux Toolkit 是官方推荐编写Redux的逻辑方式&#xff0c;用于简化书写方式React-redux 用来链接Redux和React组件之间的中间件 使用 定义数据 创建要管理的数据模块 store/module/counter.ts import { createSlice, Payloa…...

如何通过AI轻松制作PPT?让PPT一键生成变得简单又高效

如何通过AI轻松制作PPT&#xff1f;让PPT一键生成变得简单又高效&#xff01;在这个信息化飞速发展的时代&#xff0c;PPT已经成为我们日常工作、学习和生活中不可或缺的一部分。无论是公司会议、学术报告&#xff0c;还是个人展示&#xff0c;PPT的作用都不容忽视。很多人对于…...

Springer |第七届2025年区块链、人工智能和可信系统国际会议

Springer |第七届2025年区块链、人工智能和可信系统国际会议 International Conference on Blockchain, Artificial Intelligence, and Trustworthy Systems 【重要日期】 论文提交截止日期&#xff1a;2025年03月01日&#xff08;第2轮&#xff09; 会议报名截止日期&…...

新一代SCADA: 宏集Panorama Suite 2025 正式发布,提供更灵活、符合人体工学且安全的应用体验

宏集科技宣布正式推出全新Panorama Suite 2025 SCADA软件&#xff01;全新版本标志着 Panorama Suite的一个重要里程碑&#xff0c;代表了从 Panorama Suite 2022 开始并跨越三个版本&#xff08;2022、2023、2025&#xff09;的开发过程的顶峰。 此次重大发布集中在六个核心主…...

AI在电竞比分网中的主要应用场景

AI在电竞体育比分网的数据应用非常广泛&#xff0c;能够显著提升数据分析、预测、用户体验和商业价值。以下是AI在电竞比分网中的主要应用场景&#xff1a; 1. 实时数据采集与分析 比赛数据实时更新&#xff1a;AI通过自动化系统实时采集比赛数据&#xff08;如击杀数、经济差、…...

前端快速生成接口方法

大家好&#xff0c;我是苏麟&#xff0c;今天聊一下OpenApi。 官网 &#xff1a; umijs/openapi - npm 安装命令 npm i --save-dev umijs/openapi 在根目录&#xff08;项目目录下&#xff09;创建文件 openapi.config.js import { generateService } from umijs/openapi// 自…...

【Pico】使用Pico进行无线串流搜索不到电脑

使用Pico进行无线串流搜索不到电脑 官串方式&#xff1a;使用Pico互联连接电脑。 故障排查 以下来自官方文档 请按照以下步骡排除故障&#xff1a; 确认电脑和一体机连接了相同的路由器WiFi网络(相同网段) IP地址通常为192.168.XX&#xff0c;若两设备的IP地址前三段相同&…...

机柜机箱制冷风扇在使用过程中突然停止运转的原因

在机柜机箱的正常运行中&#xff0c;制冷风扇起着关键的散热作用&#xff0c;可一旦它在使用时突然停止运转&#xff0c;将会对机柜机箱内设备的稳定运行构成严重威胁。而导致这一现象出现的原因较为复杂&#xff0c;主要涵盖以下几个方面。 从电源供应角度来看&#xff0c;这是…...

Python函数返回值250214

import requests from xml.etree import ElementTree as ETdef xml_to_list(city):data_list []url "...".format(city) # 具体url地址就不写了res requests.get(url url)root ET.XML(res.text)for node in root:data_list.append(node.text)return dat_listres…...

call、apply、bind 详解

在 JavaScript 中&#xff0c;call、apply 和 bind 是 Function 对象的三个重要方法&#xff0c;它们都与函数的上下文&#xff08;this 值&#xff09;和参数传递有关。 一、call 方法 1. 语法 function.call(thisArg, arg1, arg2, ...) 2. 示例代码 const person {name…...

详解电子邮箱工作原理|SMTP、POP3、IMAP、SPF、MIME

写在前面 电子邮件&#xff08;Email&#xff09;是一种通过互联网进行异步通信的技术&#xff0c;工作原理涉及多个协议、服务器和客户端协同工作。 接下来我们来介绍一下电子邮箱的工作原理 1. 电子邮件的核心组成部分 邮件客户端&#xff1a;用户直接交互的软件&#xf…...

QT笔记——QPlainTextEdit

文章目录 1、概要2、文本设计2.1、设置文本2.1、字体样式&#xff08;大小、下划线、加粗、斜体&#xff09; 1、概要 QPlainTextEdit 是 Qt 框架中用于处理纯文本编辑的控件&#xff0c;具有轻量级和高效的特点&#xff0c;以下是它常见的应用场景&#xff1a; 文本编辑器&am…...

Qt使用pri和pro文件进行模块化编程

假如我想要做一个功能&#xff0c;这个功能用代码模块化实现出来&#xff0c;方便将来移植&#xff0c;比如音视频播放器的界面&#xff0c;将来想要在其他工程使用时&#xff0c;只需要将widget提升为音视频播放界面即可。 当我们其他工程需要这个功能时&#xff0c;我们在调用…...

Linux-文件基本操作

1.基本概念 文件: 一组相关数据的集合 文件名: 01.sh //文件名 2.linux下的文件类型 b block 块设备文件 eg: 硬盘 c character 字符设备文件 eg: 鼠标&#xff0c;键盘 d directory 目录文件 eg: 文件夹 - regular 常规文件…...

自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 自己…...

初窥强大,AI识别技术实现图像转文字(OCR技术)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据、人工智能领域创作者。目前从事python全栈、爬虫和人工智能等相关工作&#xff0c;主要擅长领域有&#xff1a;python…...

【Apache Paimon】-- 作为一名小白,如何系统地学习 Apache paimon?

目录 一、整体规划 1. 了解基本概念与背景 2. 学习资料的选择 3. 学习路径与规划 4. 学习建议 5. 注意事项 6. 参考学习资料 二、详细计划 阶段 1&#xff1a;了解基础&#xff08;1-2 周&#xff09; 阶段 2&#xff1a;深入掌握核心功能&#xff08;3-4 周&#xf…...

Elasticvue使用总结

用了好多es的可视化客户端&#xff0c;但平时用的最多的是Elasticvue这个浏览器插件。总结一下使用教程。 连接 首页大盘 说明&#xff1a; 节点情况&#xff1a;一共三个节点&#xff0c;三个节点既是master节点又是data节点。&#xff08;一个节点可以既是master又是data&a…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.

这个警告表明您在使用Vue的esm-bundler构建版本时&#xff0c;未明确定义编译时特性标志。以下是详细解释和解决方案&#xff1a; ‌问题原因‌&#xff1a; 该标志是Vue 3.4引入的编译时特性标志&#xff0c;用于控制生产环境下SSR水合不匹配错误的详细报告1使用esm-bundler…...

使用python进行图像处理—图像滤波(5)

图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值&#xff0c;以达到平滑&#xff08;去噪&#xff09;、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算&#xff0c;…...

【Elasticsearch基础】Elasticsearch批量操作(Bulk API)深度解析与实践指南

目录 1 Bulk API概述 1.1 什么是批量操作 1.2 Bulk API的优势 2 Bulk API的工作原理 2.1 请求处理流程 2.2 底层机制 3 Bulk API的使用方法 3.1 基本请求格式 3.2 操作类型示例 3.3 响应格式 4 Bulk API的最佳实践 4.1 批量大小优化 4.2 错误处理策略 4.3 性能调…...