Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)
- Baumer工业相机
- Baumer工业相机BGAPISDK和短曝光功能的技术背景
- Baumer工业相机通过BGAPISDK使用短曝光功能
- 1.引用合适的头文件
- 2.通过BGAPISDK使用短曝光功能
- 3.通过BGAPISDK关闭短曝光功能
- Baumer工业相机使用短曝光功能的优势
- Baumer工业相机使用短曝光功能的行业应用
Baumer工业相机
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
Baumer工业相机的固定帧率功能是工业相机的一个重要参数,固定帧率意味着相机可以以预定的速率捕捉图像帧。这对于需要在实时应用中保持稳定且一致的图像采集速率非常重要。
Baumer GAPI SDK是由Baumer公司提供的软件开发工具包,专门为其工业相机产品定制而成。该SDK旨在为开发人员提供一系列功能强大的工具和接口,以便轻松地与Baumer的工业相机进行通信、图像采集和处理等操作。
Baumer工业相机的Camera Explorer软件功能强大,内容丰富,通过该软件可以有效的获取相机相关的全部信息,在对于相机检测项目的开发中,有时需要获取相机中图像Buffer信息和相关的数据流信息,而Camera Explorer软件可以有效的显示相关的信息。
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等。
工业相机的短曝光功能是指相机能够在极短的时间内完成图像的采集,这个时间可以达到微秒级别,通常用于拍摄高速运动物体、移动方向的轨迹,或者进行精确测量和控制。
本文介绍的使用BGAPI SDK进行使用HDR短曝光功能。
Baumer工业相机通过BGAPISDK使用短曝光功能
下面介绍在C语言里Baumer工业相机如何通过BGAPISDK使用短曝光功能方式
1.引用合适的头文件
代码如下(示例):
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "bgapi2_genicam/bgapi2_genicam.h"
2.通过BGAPISDK使用短曝光功能
Baumer工业相机短曝光功能核心代码如下所示:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "bgapi2_genicam/bgapi2_genicam.h"SystemList
Open a System
Get the InterfaceList and fill it Open an Interface
Get the DeviceList and fill it
Open a Device if (BGAPI2_System_Open(pSystem) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("停止相机流采集\n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "AcquisitionStop", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("设置短曝光可用 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "ShortExposureEnable", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_SetBool(pNode, true) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("设置曝光参数为1微秒\n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "ExposureTime", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_SetDouble(pNode, 1.0) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("重新开启相机采集功能 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "AcquisitionStart", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("保存相机参数到UserSet1 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "UserSetDefault", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_SetString(pNode, "UserSet1") != BGAPI2_RESULT_SUCCESS) return printf("执行UserSet1保存 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "UserSetSave", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
3.通过BGAPISDK关闭短曝光功能
SystemList
Open a System
Get the InterfaceList and fill it Open an Interface
Get the DeviceList and fill it
Open a Device if (BGAPI2_System_Open(pSystem) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("停止相机流采集\n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "AcquisitionStop", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("设置关闭短曝光功能 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "ShortExposureEnable", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_SetBool(pNode, false) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("保存相机参数到UserSet1 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "UserSetDefault", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_SetString(pNode, "UserSet1") != BGAPI2_RESULT_SUCCESS) return printf("执行UserSet1保存 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "UserSetSave", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;printf("重新开启相机采集功能 \n");
if (BGAPI2_Device_GetRemoteNode(pDevice, "AcquisitionStart", &pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
if (BGAPI2_Node_Execute(pNode) != BGAPI2_RESULT_SUCCESS) return BGAPI2_RESULT_ERROR;
Baumer工业相机使用短曝光功能的优势
工业相机的短曝光功能有以下几个优势:
高速拍摄:短曝光时间可以达到微秒级别,能够精确捕捉高速运动的图像,如流水线上高速运动的物体,自动化装配时的机械臂等。这大大提高了生产线的自动化程度和效率。
安全检测:在某些工业场景下,为了保护工人的安全,需要对某些危险物品或危险区域进行监测,利用短曝光的功能可以及时捕捉到这些区域的影像,避免人员受到危险的侵害。
精准测量:短曝光功能能够快速准确地测量需要检测的目标物体,如工业自动装配时的产品尺寸、不同颜色、形状的物体的分辨等。这大大提高了产过程中的效率和生产品质。
实时监测:利用短曝光的功能,可以实时监测某些具有瞬时变化的目标物体,如温度、压力等,从而能够及时发现问题,保证生产流程的质量和稳定性。
降低噪点:短曝光时间相当于减少相机的曝光时间,可以减少底噪的影响,保证图像质量和清晰度。
总之,短曝光功能在工业相机中拥有极高的应用价值,可以提高生产线的效率和精度,优化生产过程中的各个环节,为生产和制造领域提供技术支持。
Baumer工业相机使用短曝光功能的行业应用
短曝光功能的重要性在于给工业相机带来新的应用场景,主要表现在以下几个方面:
高速测量: 短曝光功能能够保证测量的精度和稳定性,适用于需要快速计算表面形状和光滑度等数据的场合,如3D打印的快速成型、以及生产自动化流水线上的非接触式产品测量。
高速运动物体的拍摄:短曝光功能可以捕捉高速运动物体的图像,适用于工业生产中需要快速判断和精确控制的场合。如高速流水线上的物料传输、轮胎配重平衡检测等。
精准控制:短曝光功能可以精确测量时间,实现精准的控制, 如定时拍摄、控制产业流水线上物体的运动轨迹等。
提高图像采集效率:短曝光时间可以大幅度减少图像采集时间,提高相机采集图像的效率,以应对快速和多样化的工业环境需求。
综上所述,短曝光功能为工业相机带来更多的应用场景,提高了工业监测的精确度和效率,同时也为生产自动化和工业控制等领域提供了更多的技术支持。
相关文章:
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言) Baumer工业相机Baumer工业相机BGAPISDK和短曝光功能的技术背景Baumer工业相机通过BGAPISDK使用短曝光功能1.引用合适的头文件2.通过BGAPISDK使…...
Ubuntu 安装PostgreSQL
安装 PostgreSQL 包: 使用 apt-get 命令安装 PostgreSQL 客户端和服务器包:sudo apt update sudo apt install postgresql postgresql-client启动 PostgreSQL 服务: 在 Ubuntu 中,PostgreSQL 服务默认会自动启动。你可以使用以下命…...
sqlalchemy FastAPI 前端实现数据库增删改查
sqlalchemy FastAPI 前端实现数据库增删改查 仅个人学习笔记,感谢点赞关注! 知识点 连接数据库sqlalchemy 创建表结构FastAPI get post put delete操作FastAPI 请求体 路径和修改参数 依赖项 代码 # -*- ecoding: utf-8 -*- # Author: SuperLong # Em…...
QQueue调用dequeue闪退解决方法
QQueue调用dequeque闪退的解决方法 先看一下Qt帮助文档里面的说明 这个函数假设队列不是空的。 那么我们在调用之前,需要先判断队列是不是空的,如果不是空的,就调用该函数。 if (!queue.isEmpty()) {QString info queue.dequeue(); }这样…...
CSP-J算法基础 计数排序
文章目录 前言计数排序计数排序的过程总结 代码实现计数排序总结 前言 计数排序 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,适用于范围有限的整数排序。它通过计数每个值出现的次数,依次排列这些值。该算法不通过比…...
Java泛型类型解析
解析泛型类型 获取字段泛型类型 **java.lang.reflect.Field#getGenericType**: 作用:返回字段的泛型类型。返回类型:Type。如果字段是一个泛型类型,这个方法将返回一个表示这个泛型类型的 Type 对象,比如 ParameterizedType&…...
EasyExcel 学习之 导出 “类型及精度问题”
目录 现象缘由类型问题精度/格式问题精度问题格式问题 解决 现象 Excel 导出时,可能面临几个问题: 类型问题:常见类型转换、URL 转图片等精度/格式问题:数字、日期转换 缘由 类型问题 Excel 常见的 API 有两种,Ea…...
从视频中每隔10帧截取一帧并保存为图片
要从视频中每隔10帧截取一帧并保存为图片,可以使用 OpenCV 库。 import cv2# 视频文件的路径 video_path path/to/your/video.mp4# 创建一个 VideoCapture 对象 cap cv2.VideoCapture(video_path)# 检查是否成功打开视频文件 if not cap.isOpened():print("E…...
防火墙、firewalld指令、更改yum源为阿里云的yum源及常见问题
一、防火墙分类 1、硬件防火墙 2、软件防火墙(咱们昨天学的就属于这个) 3、waf 4、下一代防火墙 二、工作原理 1、通过对进出口数据的(数据、端口、IP等)进行过滤,达到对内网数据的保护。 2、防护危险的一堵墙、…...
5G Multicast/Broadcast Services(MBS) (二) Multicast
这篇是Multicast handling的overview,正文开始。 值得注意的是,对于5MBS multicast,UE只有处于 RRC connected和Inactive时,网络侧才可以 通过MRB将MBS multicast数据传输到 UE;处于Idle态只能进行MBS broadcast过程。 对于multicast涉及的RN...
【计算机方向】中科院二区潜力刊!最快14天accept,还是非OA ,不能错过!
期刊解析 🚩本 期 期 刊 看 点 🚩 非OA 审稿友好,审稿速度快 自引率7.9% 今天小编带来计算机领域SCI快刊的解读! 如有相关领域作者有意投稿,可作为重点关注! 01 期刊信息✦ 期刊名称:Inter…...
合适做项目交付的物联网平台:ThingsKit
ThingsKit,作为一个专为项目交付设计的物联网平台,凭借其强大的功能和灵活性,成为了众多企业的首选。 一、ThingsKit的核心优势 模块化设计:ThingsKit采用模块化设计,使得用户可以根据自己的需求灵活选择和组合不同的…...
python绘制3D瀑布图
成品: 代码: def line_3d(x, y, z, x_label_indexs):"""在y轴的每个点,向x轴的方向延伸出一个折线面:展示每个变量的时序变化。x: x轴,时间维,右边。y: y轴,变量维,…...
ArcGIS中怎么合并多个点图层并删除重复点?
最近,我接到了一个怎么合并多个点图层并删除其中的重复点的咨询。 下面是我对这个问题的解决思路: 1、合并图层 在地理处理工具里面 选择合并 并设置好要合并的图层即可 2、接下来在 数据管理工具→常规→删除相同项 即可 希望这些建议能对大家有所帮…...
【vue、UI】使用 Vue2 和 Element UI 封装 CSV 文件上传组件,实现csv回显
文章目录 前言组件功能概述实现效果组件模板结构组件的核心逻辑1.数据属性定义2.方法拆解3.CSV 文件解析方法4. 错误处理方法 组件样式完整组件代码总结待优化的地方 前言 在 Vue2 项目中,我们经常需要封装一些可重用的组件来提升开发效率。本文将介绍如何使用 Vue…...
erlang学习: Mnesia Erlang数据库2
Mnesia数据库增加与查询学习 -module(test_mnesia).-record(shop, {item, quantity, cost}). -record(cost, {name, price}). -record(design, {info, plan}). %% API -export([insert/3,select/1,start/0]). start() ->mnesia:start().insert(Name, Quantity, Cost) ->…...
电脑文件怎么备份?推荐6个高效便捷的文件备份的方法
在日常使用电脑的过程中,数据备份是一项至关重要的任务。无论是个人用户还是企业用户,都需要确保重要文件的安全性和可恢复性。 以下是推荐的六个高效便捷的文件备份方法,帮助你轻松守住你的文档安全。 1. 使用USB存储设备 USB存储设备如U盘…...
Procdump抓ToDesk密码
目录 前言 1.工具教程 2.转储数据 3.密码获取 4.总结 前言 本文是因为在公众号上看到一篇文章随想着实战中利用ToDesk秀操作失败后,实验环境成功复现后写下。ProcDump[1] 是一个命令行实用工具,其主要用途是监视应用程序的 CPU 峰值,并在…...
ESP8266下载固件→连接阿里云
一、工具准备 1、ESP8266Wifi模块 2、ESP8266下载器 ESP8266-01模块 二、固件配置 CH340串口工具-烧录ESP8266-01固件_esp8266 ch340烧录-CSDN博客文章浏览阅读444次,点赞6次,收藏3次。CH340会有供电不足的问题,因此需要外部供电_esp…...
20240911软考架构-------软考156-160答案解析
每日打卡题156-160答案 156、NoSQL整体框架分为4层,由下至上分为数据持久层、数据分布层、数据逻辑模型层和(1)。(2)定义了数据的存储形式。(3)定义了数据是如何分布的。(4…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
