Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置自动亮度调整BrightnessAuto(自动曝光自动增益)(C++)

news2024/11/15 4:36:30

自动亮度调整项目场景

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

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

Baumer工业相机的提供的BGAPI SDK可以在相机初始化时获取相机设备的信息,然后通过SDK自带的BrightnessAuto功能实现自动亮度调整功能。使得在光照条件不断变化的应用中也能轻松实现相机集成


自动亮度调整技术背景

从Baumer工业相机获取工业相机的固件参数需要了解相机的SDK(软件开发工具包)及其相关文档。SDK提供应用编程接口(API)和示例代码,使开发人员能够与相机互动并检索其固件参数。

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

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

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

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


自动亮度调整功能分析

Baumer工业相机的BGAPI SDK中已经集成自动亮度调整功能,本文将介绍在C++平台中如何使用自动亮度调整功能。

开启Baumer工业相机自动亮度调整功能核心代码如下所示:

void CGigeDemoDlg::OnBnClickedBtnforceip()
{
	if(m_pDevice != NULL)
	{
		try 
		{			
			//设置当前自动亮度调整功能的状态为未运行状态
			BGAPI2::BrightnessAuto::BrightnessAutoState state = BGAPI2::BrightnessAuto::DIDNOT_RUN;
			//获取当前自动亮度调整功能的状态
			state = m_pDevice->brightness_auto.GetState();
			//设置相机当前最大曝光可为500000
			m_pDevice->brightness_auto.SetExposureMaxValue(500000);
			//启动相机自动亮度调整功能一次ONCE,持续调整为:CONTINUS
			m_pDevice->brightness_auto.SetMode(BGAPI2::BrightnessAuto::ONCE);	
			//获取当前自动亮度调整功能的状态
			state = m_pDevice->brightness_auto.GetState();
			
			
		}
		catch (BGAPI2::Exceptions::IException& ex)
		{
			MessageBox(_T("Camera BrightnessAuto Function Error"));
		}
	}	
}

注意:Baumer工业相机自动亮度调整功能开启后将无法手动调整曝光和增益,需要关闭该功能后方能正常调整曝光和增益。

关闭Baumer工业相机自动亮度调整功能在调整曝光和增益核心代码如下所示:

void CGigeDemoDlg::OnBnClickedBtnexposure()
{
	// TODO:设置相机曝光	
	CString strShutter;
	m_edtShutter.GetWindowText(strShutter);
	int nShutter = _wtol(strShutter);
	if(m_pDevice != NULL)
	{
		//关闭相机自动亮度调整功能
		m_pDevice->brightness_auto.SetOff();
		m_pDevice->GetRemoteNode("ExposureTime")->SetDouble(nShutter);
	}
	
}


void CGigeDemoDlg::OnBnClickedBtngain()
{
	// TODO: 设置相机增益
	CString strGain;
	double  fGain;
	m_edtGain.GetWindowText(strGain);
	fGain= _wtof(strGain);
	if(m_pDevice != NULL)
	{
		//关闭相机自动亮度调整功能
		m_pDevice->brightness_auto.SetOff();
		m_pDevice->GetRemoteNode("Gain")->SetDouble(fGain);
	}
}

测试效果图:

(未使用BrightnessAuto功能)

(开启BrightnessAuto功能)

 从上面可以看出开启BrightnessAuto功能后, Baumer工业相机的曝光和增益将会自动调整到合适的范围值。


自动曝光和自动增益(自动亮度调整)功能的优点

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

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

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

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

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

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


自动曝光和自动增益(自动亮度调整)功能注意要点

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

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

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

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

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

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


自动曝光和自动增益(自动亮度调整)功能工业相机的行业应用

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北斗哨兵北斗短报文远程监控系统解决方案

一、项目背景 随着社会发展各行各业都会遇到各种各样的安全问题,监控系统作为安防的第一线安防设备也已广泛部署,然而地处偏僻的监控区域往往面临着难以提供电力供应以及网络供应的问题,类似于山区环境监测,工地监测等复杂的环境布…

Web自动化测试流程:从入门到精通,帮你成为测试专家

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要: 步骤一:选取测试工具 步骤二:编写测试用例 步骤三:编…

5月4号软件资讯更新合集.....

🚀 Layui 2.8.2 发布 更新日志 table 修复 autoSort: true 时,更改 table.cache 未同步到 data 属性的问题 修复 多级表头存在 hide 表头属性时,执行完整重载可能出现的错位问题 修复 未开启 page 属性时底边框缺失问题 优化 打印内容中…

大型游戏剧本杀小程序app

大型游戏剧本杀小程序的发展趋势主要表现为以下几个方面: 社交互动:未来大型游戏剧本杀小程序将会更加注重社交互动,为用户提供更多的沟通方式和社交场景,以增强玩家间的互动和参与感。 智能化和AR/VR技术应用&#xff1a…

网络基础项目——全网互通实验

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本章将会讲解网络基础项目——全网互通实验。 一.实验项目图 二.实验要求 1.全网互通,所有PC机能访问服务器(ping)2.路由器…

DA-Net:用于视网膜血管分割的双分支Transformer和自适应条带上采样

文章目录 DA-Net: Dual Branch Transformer and Adaptive Strip Upsampling for Retinal Vessels Segmentation摘要本文方法整体框架Transformer LayerAdaptive Strip Upsampling Block 实验结果消融实验 DA-Net: Dual Branch Transformer and Adaptive Strip Upsampling for R…

【Python习题集6】类与对象

类与对象 一、实验内容二、实验总结 一、实验内容 1.设计一个Circle类来表示圆,这个类包含圆的半径以及求面积和周长的函数。在使用这个类创建半径为1~10的圆,并计算出相应的面积和周长。 半径为1的圆,面积: 3.14 周长: 6.28 半径为2的圆&am…

【虹科案例】虹科任意波形发生器板卡在声场模拟实验中的应用

声场模拟实验介绍 声场模拟实验是一种通过模拟不同环境下的声场特征来模拟真实世界中声音传输情况的实验方法。通过模拟不同环境下的声场特征,如空间分布、强度、频率等,来模拟真实世界中的声音传输情况,从而对声学相关问题进行研究。 在声…

Java集合框架知识总结

前言 Java集合框架主要由两个接口及其下面的实现类构成,这两个接口分别是Map接口和Collection接口,下面先通过其对应的UML类图看下这两个接口的具体实现,如下 1、Map接口 Map接口的主要实现有我们熟悉的HashMap、HashTable以及TreeMap、Con…

信息技术发展

OSI网络标准协议 物理层:联网的媒介 RS232 FDDI 数据链路层: 网络层接收到的数据分割成可被物理层传输的帧 IEEE802.3/.2 ATM 网络层:网络地址翻译成对应的物理地址,路由 IP ICMP IGMP IPX ARP 传输层:端到端的错误恢复和流量控制…

轻松提升投标技术分?smardaten高性价比原型服务受热捧

日前,某个交通领域的软件公司A遇到了难题,十多个在跟的项目需要在一个月内完成投标准备工作。 应用软件“强甲方需求”的大环境下,A公司又陷“投标高峰期”。 更具挑战性的是,其中,有5个项目要求应标企业提供真实系统的…

一文介绍Linux EAS

能量感知调度(Energy Aware Scheduling,简称EAS)是目前Android手机中Linux线程调度器的基础功能,它使调度器能预测其决策对CPU能耗的影响。依靠CPU的能量模型(Energy Model,简称EM),…

steam搬砖,适合个人操作的创业项目

这个项目主就是在Steam平台买进CSGO道具,再放到网易buff平台卖出。因为进价低出价高,所以每卖出一件道具,利润都相当可观。 关键这玩意背靠Steam这个超大平台,日活几千万,几乎覆盖了市面上的所有热门游戏,…

动态规划——逆序对

逆序对Time Limit: 1000 MSMemory Limit: 5000 KB Description 给定一个长度为N的int型数组a[0,1,2,...N-1], 请计算逆序对个数.当i<j且a[i]>a[j], 则称a[i]与a[j]是一对逆序对.Input 第一行输入M表示包含M组测试数据&#xff0c;每组先输入N (N<50000), 接着输入N…

ios app真机测试到上架App Store详细教程-必看

​转载&#xff1a;https://blog.csdn.net/p312011150/article/details/89374401 ios app真机测试到上架App Store详细教程-必看 Appuploader常见问题 转存失败 重新上传 取消 上架基本需求资料 1、苹果开发者账号&#xff08;如还没账号先申请-苹果开发者账号申请教程&…

​​​​魔兽服务端自定义创建传送门教程

魔兽服务端自定义创建传送门教程 大家好我是艾西,今天跟大家分享下魔兽自定义传送门怎么创建。玩过魔兽的朋友都知道,魔兽这游戏内容多地图也非常大,一个老魔兽玩家很熟悉跑副本的情况下从这个地图到下一个地图都得跑半个小时,更何况对于很多得新手小伙伴了,所有顾及到大…

CUDA编程之矩阵乘法

文章目录 一、矩阵乘法回顾二、CUDA内存架构CUDA中的共享内存CUDA中的共享内存使用方法静态申请内存动态申请内存 三、分解矩阵乘法 / 平铺矩阵乘法四、实战代码DS_M 和 DS_N的索引方式解释 一、矩阵乘法回顾 CPU版本&#xff1a; GPU版本&#xff1a; 核函数如下&#xff1…

JeecgBoot低代码平台—默认模糊查询以及高级查询规则

JeecgBoot低代码开发平台&#xff0c;自己封装了一套查询过滤器&#xff0c;默认就支持模糊查询&#xff0c;只是需要前后加上*&#xff0c;虽然麻烦&#xff0c;但是这样是考虑到系统后期数据量大默认模糊查询会导致系统性能问题。当然如果你的系统数据量级别达不到这个情况&a…

高校大数据实验室解决方案

高校实验室建设总目标是搭建一站式教学服务平台&#xff0c;一站式教学服务平台概念是在深刻理解高校学科建设及存在的若干问题上提出。围绕着学科建设的各个方面&#xff0c;从专业开设、课程设置、师资培养、教学资源、实验环境、学生实训实习及就业创业等环节&#xff0c;提…

Android热修复原理与实战

作者&#xff1a;独孤狼 什么是热修复 在我们应用上线后出现bug需要及时修复时&#xff0c;不用再发新的安装包&#xff0c;只需要发布补丁包&#xff0c;在客户无感知下修复掉bug 怎么进行热修复 服务端&#xff1a;补丁包管理 用户端&#xff1a;执行热修复 开发端&#xff1…