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

Baumer工业相机堡盟相机如何使用自动曝光功能(自动曝光优点和行业应用)(C++)

项目场景

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

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

相机的自动曝光功能可以使得在光照条件不断变化的应用中也能轻松实现相机集成


技术背景

工业相机的自动曝光功能通常依赖于硬件和软件功能的结合。

在硬件方面,相机通常使用光电二极管等传感器来检测场景中的光线水平。它们还可能利用具有可变光圈的镜头,从而可以更好地控制进入相机的光量。

在软件方面,自动曝光算法通常使用反馈回路来调整相机设置,如快门速度、光圈和ISO灵敏度,以应对光线的变化。这些算法还可能考虑到一些因素,如所需的图像对比度,被拍摄场景的动态范围,以及相机的曝光测光模式(如点测,平均测,或矩阵测)。

总的来说,工业相机自动曝光的目标是确保以最佳的亮度和对比度拍摄图像,同时最大限度地减少由曝光过度或曝光不足引起的噪音和其他图像伪影。


代码分析

Baumer工业相机堡盟相机SDK示例中021_BrightnessAuto.cpp详细介绍了如何配置相机BrightnessAuto功能。

软件SDK示例地址如下所示:Baumer_GAPI_SDK_2.12.0_win_x86_64_cpp\examples\src\0_Common\021_BrightnessAuto\021_BrightnessAuto.cpp

代码整体结构相对简单,在相机初始化后进行相机的BrightnessAuto功能使用,部分核心代码如下: 

std::cout << std::endl;
std::cout << "CONFIGURE BRIGHTNESSAUTO" << std::endl;
std::cout << "########################" << std::endl << std::endl;try 
{std::cout << "  Limit exposure max to 500ms" << std::endl;pDevice->brightness_auto.SetExposureMaxValue(500000);std::cout << "  Start BrightnessAuto ONCE mode" << std::endl;pDevice->brightness_auto.SetMode(BGAPI2::BrightnessAuto::ONCE);std::cout << std::endl;DisplayBrightnessAutoSettings(&pDevice->brightness_auto);
}
catch (BGAPI2::Exceptions::IException& ex) {returncode = (returncode == 0) ? 1 : returncode;std::cout << "ExceptionType:    " << ex.GetType() << std::endl;std::cout << "ErrorDescription: " << ex.GetErrorDescription() << std::endl;std::cout << "in function:      " << ex.GetFunctionName() << std::endl;
}std::cout << "CONFIGURE BRIGHTNESSAUTO" << std::endl;
std::cout << "########################" << std::endl << std::endl;try 
{std::cout << "default: " << std::endl;std::cout << "  Algorithm: "<< GetBrightnessAutoAlgorithm(pDevice->brightness_auto.GetAlgorithm()) << std::endl;std::cout << "  ControlFeature: "<< GetBrightnessAutoControlFeature(pDevice->brightness_auto.GetControlFeature()) << std::endl;std::cout << std::endl;std::cout << "  Reset all parameters to default" << std::endl;pDevice->brightness_auto.Default();std::cout << "  Set nominal value to 75%" << std::endl;pDevice->brightness_auto.SetNominalValue(75.0);if (CheckCorrectPayloadType(pDevice)) {std::cout << "  Start CONTINUOUS mode with EXPOSURE_ONLY and SOFTWARE algorithm"<< std::endl;pDevice->brightness_auto.SetMode(BGAPI2::BrightnessAuto::CONTINUOUS,BGAPI2::BrightnessAuto::EXPOSURE_ONLY,BGAPI2::BrightnessAuto::SOFTWARE);} else {std::cout << "  Start CONTINUOUS mode with EXPOSURE_ONLY and HARDWARE algorithm,"" because camera is in JPEG mode" << std::endl;pDevice->brightness_auto.SetMode(BGAPI2::BrightnessAuto::CONTINUOUS,BGAPI2::BrightnessAuto::EXPOSURE_ONLY,BGAPI2::BrightnessAuto::HARDWARE);}std::cout << std::endl;DisplayBrightnessAutoSettings(&pDevice->brightness_auto);
}
catch (BGAPI2::Exceptions::IException& ex) {returncode = (returncode == 0) ? 1 : returncode;std::cout << "ExceptionType:    " << ex.GetType() << std::endl;std::cout << "ErrorDescription: " << ex.GetErrorDescription() << std::endl;std::cout << "in function:      " << ex.GetFunctionName() << std::endl;
}


自动曝光功能的优点

工业相机的自动曝光功能有几个优点,

1. 稳定的图像质量。有了自动曝光,相机会调整其设置,以确保拍摄的每张图像都有最佳的亮度和对比度。

2. 提高生产力。通过使用自动曝光,操作员不需要花时间手动调整相机设置,这可以提高工业环境中的生产力。

3. 减少了操作者的错误。当手动调整摄像机设置时,发生错误的可能性较大。自动曝光有助于通过自动化过程来消除这种风险。

4. 更好的图像分析。用自动曝光拍摄的图像往往具有更一致的照明和对比度,使分析和测量更容易、更准确。

总的来说,工业相机的自动曝光功能可以帮助简化操作,减少错误,并在各种工业环境中提高图像质量。。


自动曝光功能注意要点

在使用工业相机的自动曝光功能时,有几件事需要注意

1. 照明条件。确保环境中的照明条件是稳定和一致的。照明的波动会影响曝光设置,导致结果不一致。

2. 对比度。高对比度的场景可能会导致曝光过度或曝光不足的区域,所以相应地调整曝光设置是很重要的。

3. 白平衡。确保白平衡设置正确,特别是如果你使用自动白平衡。不正确的白平衡会导致颜色的转变和不准确的曝光。

4. 快门速度:快门速度决定了相机快门打开的时间,直接影响到曝光。要注意使用的快门速度,以避免运动模糊或曝光不足的图像。

5. ISO:避免使用高ISO设置,因为它可能引入噪音并降低图像质量。尽量使用最低的ISO设置。 通过注意这些因素,你可以确保你的工业相机的自动曝光功能产生准确和一致的结果。


自动曝光功能工业相机的行业应用

具有自动曝光功能的工业相机被广泛用于各个行业的多种应用。

 1. 质量控制和检查。这些相机可用于制造线,以确保产品符合特定的质量标准。相机可以检测到产品的缺陷和不正常情况,并触发警报或通知。

2. 机器视觉。具有自动曝光功能的工业相机是机器视觉应用的理想选择,在这种应用中,需要对物体进行实时跟踪、测量或检查。例如,它们可用于检测机器零件的缺陷,监测生产过程,或跟踪物体的移动。

3. 机器人技术。这些相机可以与机器人集成,为各种任务提供视觉反馈并提高准确性和精确性。它们可以用来引导机器人,验证零件的位置,并检测制造过程中的错误。

4. 监视。工业相机也可用于监控目的,如跟踪人员或车辆的移动,检测安全设施中的入侵者,并确定工作区的潜在安全危险。

5.人工智能。工业相机可以与智慧驾驶、无人飞行等AI领域的行业进行多方面的集成,是其中不可或缺的重要组成部分。

相关文章:

Baumer工业相机堡盟相机如何使用自动曝光功能(自动曝光优点和行业应用)(C++)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#xff0c;如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能&#xff0c;可以实时传输高分辨率图像。此外&#xff0c;该相机还具…...

HTML、CSS学习笔记7(移动适配:rem、less)

一、移动适配 rem&#xff1a;目前多数企业在用的解决方案vw / vh&#xff1a;未来的解决方案 1.rem&#xff08;单位&#xff09; 1.1使用rem单位设置尺寸 px单位或百分比布局可以实现吗&#xff1f; ————不可以 网页的根字号——HTML标签 1.2.rem移动适配 写法&#x…...

STM32感应开关盖垃圾桶

目录 项目需求 项目框图 ​编辑 硬件清单 sg90舵机介绍及实战 sg90舵机介绍 角度控制 SG90舵机编程实现 超声波传感器介绍及实战 超声波传感器介绍 超声波编程实战 项目设计及实现 项目需求 检测靠近时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c;2秒后关盖…...

进程跟线程的区别

进程跟线程的区别 文章目录进程跟线程的区别前言一.什么线程二.线程与进程的联系三.线程与进程有什么不同前言 现代所有计算机都能同时做几件事情,当一个用户程序正在运行时,计算机还能同时读取磁盘,并向屏幕打印输出正文.在一个多道操作程序中,cpu由一道程序向另外一道程的切…...

[ICLR 2016] Unsupervised representation learning with DCGANs

目录 IntroductionModel ArchitectureReferencesIntroduction 作者提出了用 CNN 搭建 GAN,使得 GAN 训练更加稳定的一系列准则,并将满足这些设计理念的模型称为 DCGANs (Deep Convolutional GANs). 此外,作者将 trained discriminators 用于图像分类任务,相比于其他无监督算…...

QT编程从入门到精通之十五:“第五章:Qt GUI应用程序设计”之“5.1 UI文件设计与运行机制”之“5.1.2 项目管理文件”

目录 第五章:Qt GUI应用程序设计 5.1 UI文件设计与运行机制 5.1.2 项目管理文件 第五章:Qt GUI应用程序设计 在“Qt 程序创建基础”上,本章将继续深入地介绍Qt Creator设计GUI应用程序的方法...

基于Three.js和MindAR实现的网页端WebAR人脸识别追踪功能的京剧换脸Demo(含源码)

前言 近段时间一直在玩MindAR的功能&#xff0c;之前一直在弄图片识别追踪的功能&#xff0c;发现其强大的功能还有脸部识别和追踪的功能&#xff0c;就基于其面部网格的例子修改了一个国粹京剧的换脸程序。如果你不了解MindAR的环境配置可以先参考这篇文章&#xff1a;基于Mi…...

动态规划思路

拉勾教育版权所有&#xff1a;https://kaiwu.lagou.com/course/courseInfo.htm?courseId3 动态规划思路 1.最优子结构 2.重复计算子机构 3.依靠递归&#xff0c;层层向上传值&#xff0c;所以编程时初始化子结构很重要 动态规划步骤 1.判断动态规划的类型 1.线性规划 >&…...

HTTPS关键词语解释和简单通讯流程

1、 什么是HTTPS HTTPS是基于HTTP的上层添加了一个叫做TLS的安全层&#xff0c;对数据的加密等操作都是在这个安全层中进行处理的&#xff0c;其底层还是应用的HTTP。 2、 什么是对称加密&#xff1b; 加密和解密都是用同一个秘钥 3、 什么是非对称加密&#xff1b; 加密和…...

“前端开发中的三种定时任务及其应用“

前端定时任务是指在一定时间间隔内&#xff0c;自动执行指定的操作或函数。在前端开发中&#xff0c;定时任务被广泛应用于诸如数据更新、定时提醒、定时刷新页面等方面。在本文中&#xff0c;我们将介绍前端中常见的三种定时任务&#xff0c;分别是 setTimeout、setInterval 和…...

华为OD机试题 - 猜字谜(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:猜字谜题目输入输出描述备注示例一输入输出示例二输入输出思路C…...

python@pyside样式化

文章目录refWidget类创建样式化文件qss引用样式并启动应用ref Styling the Widgets Application - Qt for PythonQt Style Sheets Reference | Qt Widgets 5.15.12 Widget类创建 创建一个简单界面(菜单主要内容)它们是水平布局 主要内容包括一段文本和一个按钮,它们是垂直布…...

C++经典15道面试题目(文末含大题)

今天给大家找了几个C面试里很有可能被问的哦&#xff0c;赶紧收藏下来去背&#xff01;&#xff01;&#xff01; 目录 1&#xff09;C中有malloc/free&#xff0c;为什么还需要new/delete? 2&#xff09;C中explicit关键字的作用? 3&#xff09;C中static关键字的作用&a…...

自动计算30天内的股价最高价源代码

我可以回答这个问题。您可以使用以下代码来计算30天内股价的最高价&#xff1a; 复制 import pandas as pd import yfinance as yf # 设置股票代码和日期范围 symbol "AAPL" start_date "2021-01-01" end_date "2021-06-30" # 获取股票…...

国外SEO升级攻略!一看就懂!

SEO是搜索引擎优化的缩写&#xff0c;它是指通过优化网站内容和结构&#xff0c;提升网站在搜索引擎中的排名&#xff0c;从而获得更多的有价值的流量。 而关键词研究和选择是SEO优化中最基础也是最关键的环节&#xff0c;它决定了网站将面向哪些用户、哪些关键词和词组将被优…...

设计模式—适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。这种模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能。举个真实的例子&#xff0c…...

OpenAI-J 如何进行测试

当你检出 OpenAI-J 项目以后&#xff0c;你可以对 OpenAI-J 进行测试。在测试之前你首先需要获得 OpenAI 的 API Key。OpenAI 的 Key通常是以 sk 开头的字符串。最简单粗暴的办法就是把获得的 key 替换掉上面的字符串&#xff0c;然后进行测试就可以了。运行 Unit 测试在我们的…...

课设-机器学习课设-实现新闻分类

✅作者简介&#xff1a;CSDN内容合伙人、信息安全专业在校大学生&#x1f3c6; &#x1f525;系列专栏 &#xff1a;课设-机器学习 &#x1f4c3;新人博主 &#xff1a;欢迎点赞收藏关注&#xff0c;会回访&#xff01; &#x1f4ac;舞台再大&#xff0c;你不上台&#xff0c;…...

关于异常控制流和系统级 I/O:进程

&#x1f4ad; 写在前面&#xff1a;本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 的 进程部分。CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写&#xff0c;该教材由Randal E. Bryant和David R. OHallaron 合著…...

Unet 基于TCGA颅脑肿瘤MRI分割(交叉熵损失+多通道输出)

目录 1. 介绍 2. Unet 2.1 unet 代码 2.2 测试网络 3. dataset 数据加载 4. train 训练...

5个高效方案解决League-Toolkit启动故障

5个高效方案解决League-Toolkit启动故障 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 问题现象&#xff1a;跨平台启动异常图谱…...

漫画收藏自由:picacomic-downloader的离线阅读解决方案

漫画收藏自由&#xff1a;picacomic-downloader的离线阅读解决方案 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh…...

Qwen1.5-1.8B GPTQ生成技术博客大纲与初稿:以“操作系统内存管理”为例

Qwen1.5-1.8B GPTQ生成技术博客大纲与初稿&#xff1a;以“操作系统内存管理”为例 1. 引言&#xff1a;当AI成为技术写作的“副驾驶” 最近在折腾一些技术分享&#xff0c;想写一篇关于操作系统内存管理的文章。这话题吧&#xff0c;说深了容易劝退&#xff0c;说浅了又没意…...

Qwen3-VL多模态检索系统:跨模态搜索部署实战案例

Qwen3-VL多模态检索系统&#xff1a;跨模态搜索部署实战案例 用图文对话技术构建智能搜索系统&#xff0c;让AI看懂图片内容并精准回答你的问题 1. 项目介绍与环境准备 Qwen3-VL是阿里最新开源的视觉-语言模型&#xff0c;可以说是目前最强大的多模态AI系统之一。这个模型不仅…...

ZeroOmega代理规则引擎:构建智能化网络访问策略

ZeroOmega代理规则引擎&#xff1a;构建智能化网络访问策略 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega 在数字化生活中&#xff0c;我们每天都在与各种网络…...

LM386集成功放电路实战:从零搭建到波形调试全记录(附实测数据)

LM386集成功放电路实战&#xff1a;从零搭建到波形调试全记录&#xff08;附实测数据&#xff09; 在电子设计领域&#xff0c;音频功率放大器一直是基础却充满挑战的课题。LM386作为经典的集成功放芯片&#xff0c;以其低功耗、高增益和易用性著称&#xff0c;成为入门者和资深…...

YOLOv8 Detect Head 源码拆解:从张量变形到边界框解码,一步步带你理解Anchor-Free预测

YOLOv8 Detect Head 深度解析&#xff1a;从特征图到预测框的完整实现路径 在计算机视觉领域&#xff0c;目标检测一直是核心任务之一。YOLOv8作为当前最先进的实时检测器&#xff0c;其Detect Head模块的设计尤为精妙。本文将带您深入探索这一模块的内部工作机制&#xff0c;从…...

NaViL-9B开源模型生态:HuggingFace模型卡+GitHub训练代码指引

NaViL-9B开源模型生态&#xff1a;HuggingFace模型卡GitHub训练代码指引 1. 平台简介 NaViL-9B是上海人工智能实验室发布的一款原生多模态大语言模型&#xff0c;支持纯文本问答和图片理解双重能力。作为开源社区的重要贡献&#xff0c;该模型已在HuggingFace平台发布模型卡&…...

雷达式多参数水文监测站

雷达式多参数水文监测站用先进的非接触式测量技术&#xff0c;结合水库断面参数精准计算流量&#xff0c;全程无需接触水体&#xff0c;从根源上规避水体环境对监测设备的影响。不受风、环境温度、雾霾、水体泥沙、漂浮物等外界因素干扰&#xff0c;即便在汛期水流浑浊、漂浮物…...

FlowState Lab生成对抗网络(GAN)模式探究:创造极致逼真的模拟数据

FlowState Lab生成对抗网络&#xff08;GAN&#xff09;模式探究&#xff1a;创造极致逼真的模拟数据 1. 引言&#xff1a;当AI学会"造假" 想象一下&#xff0c;你面前有两组数据&#xff1a;一组来自真实世界的传感器采集&#xff0c;另一组由AI生成。它们看起来几…...