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

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使用短曝光功能&#xff08;曝光可设置1微秒&#xff09;&#xff08;C语言&#xff09; Baumer工业相机Baumer工业相机BGAPISDK和短曝光功能的技术背景Baumer工业相机通过BGAPISDK使用短曝光功能1.引用合适的头文件2.通过BGAPISDK使…...

Ubuntu 安装PostgreSQL

安装 PostgreSQL 包&#xff1a; 使用 apt-get 命令安装 PostgreSQL 客户端和服务器包&#xff1a;sudo apt update sudo apt install postgresql postgresql-client启动 PostgreSQL 服务&#xff1a; 在 Ubuntu 中&#xff0c;PostgreSQL 服务默认会自动启动。你可以使用以下命…...

sqlalchemy FastAPI 前端实现数据库增删改查

sqlalchemy FastAPI 前端实现数据库增删改查 仅个人学习笔记&#xff0c;感谢点赞关注&#xff01; 知识点 连接数据库sqlalchemy 创建表结构FastAPI get post put delete操作FastAPI 请求体 路径和修改参数 依赖项 代码 # -*- ecoding: utf-8 -*- # Author: SuperLong # Em…...

QQueue调用dequeue闪退解决方法

QQueue调用dequeque闪退的解决方法 先看一下Qt帮助文档里面的说明 这个函数假设队列不是空的。 那么我们在调用之前&#xff0c;需要先判断队列是不是空的&#xff0c;如果不是空的&#xff0c;就调用该函数。 if (!queue.isEmpty()) {QString info queue.dequeue(); }这样…...

CSP-J算法基础 计数排序

文章目录 前言计数排序计数排序的过程总结 代码实现计数排序总结 前言 计数排序 计数排序&#xff08;Counting Sort&#xff09;是一种线性时间复杂度的排序算法&#xff0c;适用于范围有限的整数排序。它通过计数每个值出现的次数&#xff0c;依次排列这些值。该算法不通过比…...

Java泛型类型解析

解析泛型类型 获取字段泛型类型 **java.lang.reflect.Field#getGenericType**: 作用&#xff1a;返回字段的泛型类型。返回类型&#xff1a;Type。如果字段是一个泛型类型&#xff0c;这个方法将返回一个表示这个泛型类型的 Type 对象&#xff0c;比如 ParameterizedType&…...

EasyExcel 学习之 导出 “类型及精度问题”

目录 现象缘由类型问题精度/格式问题精度问题格式问题 解决 现象 Excel 导出时&#xff0c;可能面临几个问题&#xff1a; 类型问题&#xff1a;常见类型转换、URL 转图片等精度/格式问题&#xff1a;数字、日期转换 缘由 类型问题 Excel 常见的 API 有两种&#xff0c;Ea…...

从视频中每隔10帧截取一帧并保存为图片

要从视频中每隔10帧截取一帧并保存为图片&#xff0c;可以使用 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、软件防火墙&#xff08;咱们昨天学的就属于这个&#xff09; 3、waf 4、下一代防火墙 二、工作原理 1、通过对进出口数据的&#xff08;数据、端口、IP等&#xff09;进行过滤&#xff0c;达到对内网数据的保护。 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 ,不能错过!

期刊解析 &#x1f6a9;本 期 期 刊 看 点 &#x1f6a9; 非OA 审稿友好&#xff0c;审稿速度快 自引率7.9% 今天小编带来计算机领域SCI快刊的解读&#xff01; 如有相关领域作者有意投稿&#xff0c;可作为重点关注&#xff01; 01 期刊信息✦ 期刊名称&#xff1a;Inter…...

合适做项目交付的物联网平台:ThingsKit

ThingsKit&#xff0c;作为一个专为项目交付设计的物联网平台&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了众多企业的首选。 一、ThingsKit的核心优势 模块化设计&#xff1a;ThingsKit采用模块化设计&#xff0c;使得用户可以根据自己的需求灵活选择和组合不同的…...

python绘制3D瀑布图

成品&#xff1a; 代码&#xff1a; def line_3d(x, y, z, x_label_indexs):"""在y轴的每个点&#xff0c;向x轴的方向延伸出一个折线面&#xff1a;展示每个变量的时序变化。x: x轴&#xff0c;时间维&#xff0c;右边。y: y轴&#xff0c;变量维&#xff0c;…...

ArcGIS中怎么合并多个点图层并删除重复点?

最近&#xff0c;我接到了一个怎么合并多个点图层并删除其中的重复点的咨询。 下面是我对这个问题的解决思路&#xff1a; 1、合并图层 在地理处理工具里面 选择合并 并设置好要合并的图层即可 2、接下来在 数据管理工具→常规→删除相同项 即可 希望这些建议能对大家有所帮…...

【vue、UI】使用 Vue2 和 Element UI 封装 CSV 文件上传组件,实现csv回显

文章目录 前言组件功能概述实现效果组件模板结构组件的核心逻辑1.数据属性定义2.方法拆解3.CSV 文件解析方法4. 错误处理方法 组件样式完整组件代码总结待优化的地方 前言 在 Vue2 项目中&#xff0c;我们经常需要封装一些可重用的组件来提升开发效率。本文将介绍如何使用 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个高效便捷的文件备份的方法

在日常使用电脑的过程中&#xff0c;数据备份是一项至关重要的任务。无论是个人用户还是企业用户&#xff0c;都需要确保重要文件的安全性和可恢复性。 以下是推荐的六个高效便捷的文件备份方法&#xff0c;帮助你轻松守住你的文档安全。 1. 使用USB存储设备 USB存储设备如U盘…...

Procdump抓ToDesk密码

目录 前言 1.工具教程 2.转储数据 3.密码获取 4.总结 前言 本文是因为在公众号上看到一篇文章随想着实战中利用ToDesk秀操作失败后&#xff0c;实验环境成功复现后写下。ProcDump[1] 是一个命令行实用工具&#xff0c;其主要用途是监视应用程序的 CPU 峰值&#xff0c;并在…...

ESP8266下载固件→连接阿里云

一、工具准备 1、ESP8266Wifi模块 2、ESP8266下载器 ESP8266-01模块 二、固件配置 CH340串口工具-烧录ESP8266-01固件_esp8266 ch340烧录-CSDN博客文章浏览阅读444次&#xff0c;点赞6次&#xff0c;收藏3次。CH340会有供电不足的问题&#xff0c;因此需要外部供电_esp…...

20240911软考架构-------软考156-160答案解析

每日打卡题156-160答案 156、NoSQL整体框架分为4层&#xff0c;由下至上分为数据持久层、数据分布层、数据逻辑模型层和&#xff08;1&#xff09;。&#xff08;2&#xff09;定义了数据的存储形式。&#xff08;3&#xff09;定义了数据是如何分布的。&#xff08;4&#xf…...

工厂模式与策略模式(golang示例)

一、工厂模式简介 工厂模式是一种创建型设计模式&#xff0c;主要用于封装对象的创建过程。通过使用工厂模式&#xff0c;客户端代码无需直接实例化对象&#xff0c;而是通过工厂类来创建对象。这样可以将对象的创建与使用分离&#xff0c;从而提高代码的灵活性。 1.1 工厂模…...

批量视频如何做成一个二维码(分步骤教程)

原创教程&#xff0c;阿酷TONY&#xff0c;2024.9.11&#xff0c;湖南长沙 批量视频如何做成一个二维码&#xff08;分步骤教程&#xff09;&#xff0c;场景应用&#xff1a; 1. 一批视频需要按组分类&#xff0c;生成一个二维码&#xff0c;实现扫一个二维码&#xff0c;观看…...

OpengGL教程(三)---使用VAO和VBO方式绘制三角形

本章参考官方教程&#xff1a;learnopengl-cn VertexShader.glsl #version 330 core layout(location 0) in vec3 position; layout(location 1) in vec3 color; uniform mat4 projection; // 投影矩阵 out vec4 ourColor; void main() {gl_Position projection * vec4(p…...

【单片机开发】单片机常用开发工具

【前言】 在嵌入式系统领域&#xff0c;单片机&#xff08;Microcontroller, MCU&#xff09;作为核心组件&#xff0c;广泛应用于智能家居、工业控制、汽车电子等众多领域。而单片机开发工具&#xff0c;则是开发者们实现创意、解决问题的重要助手。本文主要讲述目前主流的单…...

一、计算机网络的体系结构

1.1 计算机网络的组成 1&#xff09;从组成部分上分为&#xff1a;硬件、软件、协议。硬件是指主机、通信链路、交换设备和通信处理机组曾。软件包括各种实现资源共享的软件以及各种软件工具&#xff08;如网络操作系统、邮件收发程序、FTP程序、聊天软件&#xff09;。 2&…...

C语言补习课——文件篇

来源&#xff1a;黑马程序员 第157讲 C语言操作文件概述 读取文件&#xff1a;输入流 写文件&#xff1a;输出流 读写的方向判断取决与参照&#xff0c;一般我们站在程序的角度判断读写方向。 第158讲 路径 基本概念 路径就是指文件在电脑中的位置&#xff0c;eg&#xf…...

【可测试性实践】C++ 单元测试代码覆盖率统计入门

引言 最近在调研C工程怎么做单元测试和代码覆盖率统计&#xff0c;由于我们工程有使用Boost库&#xff0c;尝试使用Boost.Test来实现单元测试并通过Gcov和Lcov来生成代码覆盖率报告。本文记录完整的搭建测试Demo&#xff0c;希望能带来一定参考。 常用C单测框架对比 特性Goo…...

C++笔记---list

1. list的介绍 list其实就是就是我们所熟知的链表&#xff08;双向循环带头结点&#xff09;&#xff0c;但其是作为STL中的一个类模板而存在。 也就是说&#xff0c;list是可以用来存储任意类型数据的顺序表&#xff0c;既可以是内置类型&#xff0c;也可以是自定义类型&…...

JavaWeb开发中为什么Controller里面的方法是@RequestMapping?

在Java Web开发中&#xff0c;尤其是在使用Spring MVC框架时&#xff0c;RequestMapping注解被广泛应用于Controller层的方法上&#xff0c;这是因为RequestMapping是Spring MVC提供的一个核心注解&#xff0c;用于将HTTP请求映射到相应的处理器类或处理器方法上。通过这种方式…...

若依移动版使用微信小程序打开失败

现象 解决办法&#xff1a;删掉自带的appid...