Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前实时帧率(C++)

news/2024/5/14 17:29:55

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来计算相机的实时帧率(C++)

  • Baumer工业相机
  • Baumer工业相机的帧率的技术背景
  • Baumer工业相机的帧率获取方式
    • CameraExplorer如何查看相机帧率信息
    • 在BGAPI SDK里通过函数获取相机帧率
  • Baumer工业相机通过BGAPI SDK获取帧率的优势
  • Baumer工业相机通过BGAPI SDK获取帧率的行业应用

Baumer工业相机

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

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

Baumer工业相机的实时帧率是工业相机的一个重要参数,因为它影响相机准确捕捉快速移动物体或事件的能力。分辨率、图像质量和可用存储空间等因素也会影响工业相机的帧率。

Baumer工业相机的Camera Explorer软件功能强大,内容丰富,通过该软件可以有效的获取相机相关的全部信息,在对于相机检测项目的开发中,有时需要获取相机中图像Buffer信息和相关的数据流信息,而Camera Explorer软件可以有效的显示相关的信息。

Baumer工业相机的帧率的技术背景

工业相机的帧率是指相机每秒捕获的单个帧或图像的数量。

帧率越高,意味着摄像机每秒能够捕获更多的图像,从而使视频更流畅、更细腻。

工业相机的帧率取决于各种技术因素,如图像传感器技术、相机的处理速度,以及用于传输数据的连接方法。

图像传感器技术: 摄像机的帧率是由图像传感器读出图像像素数据的速度决定的。与CCD传感器相比,CMOS传感器提供更快的帧率,因为它们可以无损地读出像素。

处理速度:工业相机的帧率会受到相机处理能力的影响。较高的处理速度能使数据读出和传输更快,从而获得更高的帧率。

连接方法: 工业相机的帧率还取决于用于传输数据的连接方法。USB 3.0和千兆以太网提供更快的数据传输率,通常用于工业相机以实现更高的帧率。

总之,工业相机帧率的技术背景由图像传感器技术、处理速度和用于传输数据的连接方法决定。

Baumer工业相机的帧率获取方式

Baumer工业相机帧率的计算方式如下所示:

  1. 确定相机的输出格式和分辨率,例如 1920*1080。

  2. 然后查找相机的技术规格表,了解它的最大帧速率。最大帧速率是指相机能够捕获的每秒图像帧数的最大值。例如,相机的最大帧速率为 60 帧每秒。

  3. 接下来,通过检查相机检测到考虑的接口,从相机中获取图像帧并计算每秒钟传输的帧数。

以通过USB3.0接口连接的标准分辨率相机为例,可以使用以下公式计算帧率:

实时帧数 = 最大帧速率 * 传输带宽利用率

传输带宽利用率 = (像素位深度 * 帧高 * 帧宽 * 实际传输速率) / 8

例如,如果选择了 8 位的像素位深度,相机输出的图像帧大小为 1920x1080 像素,并且实际传输速率为 300 MB/s,则传输带宽利用率为:

(8 * 1080 * 1920 * 300) / 8 = 150.7 MB/s

如果相机的最大帧速率为 60 帧每秒,则实时帧率为:

实时帧数 = 60 * 150.7 / 300 = 30 帧每秒

因此,这个相机在这种配置下的实时帧率为 30 帧每秒。

前面有技术博客可以使用FrameID每秒计算对应的差值,从而计算相机的实时帧率:

Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C++)

CameraExplorer如何查看相机帧率信息

Baumer工业相机 的相机软件Camera Explorer可以可视化便捷地进行查看相机图像的相关信息

首先,双击进入相机界面
在这里插入图片描述
然后选择相机页面中左上角标题菜单栏中的Widgets,并选择其中的Image/Buffer Info。

在这里插入图片描述
然后在软件右侧出现相机图像通讯相关信息,如下所示:

在这里插入图片描述
图像参数中Throughout可以查看相机当前的帧率。如下图所示:

在这里插入图片描述

在BGAPI SDK里通过函数获取相机帧率

在相机连接后构建线程显示帧率,C++调用代码如下所示:

UINT CGigeDemoDlg::ShowFrame_hThread1(LPVOID pParam)
{CGigeDemoDlg *dlg = (CGigeDemoDlg *)pParam;dlg->SetShowFrame();return 0;
}void CGigeDemoDlg::SetShowFrame()
{try{bool m_bRun0 = true;while (m_bRun0){if(FrameID>0){double CurFrameID1 = FrameID;Sleep(100);double CurFrameID2 = FrameID;double CalFrameID =(CurFrameID2-CurFrameID1)*1 ;BGAPI2::NodeMap* pDataStreamNodeList = m_pDataStream->GetNodeList();float m_CurStreamThroughoutDouble = pDataStreamNodeList->GetNode("Throughput")->GetDouble();//获取网口计算帧率if (m_pDataStream->GetTLType() == "GEV") {float m_CurStreamBitrateDouble = pDataStreamNodeList->GetNode("Bitrate")->GetDouble();//获取网口数据通量									m_CurStreamBitrate.Format(_T("%.2f"),m_CurStreamBitrateDouble);GetDlgItem(IDC_STCURBITRATE)->SetWindowText(m_CurStreamBitrate+_T(" MBit/s"));}CString CurFameratestr;CurFameratestr.Format(_T("%.1f"),m_CurStreamThroughoutDouble);m_Cursetframe = CurFameratestr;GetDlgItem(IDC_STCURFRAME)->SetWindowText(CurFameratestr);}}}catch (int e){MessageBox(_T("Camera SetShowimage Error"));}
}

测试显示帧率结果如下所示:

在这里插入图片描述

Baumer工业相机通过BGAPI SDK获取帧率的优势

Baumer工业相机通过BGAPI SDK获取帧率的优势主要包括:

高效性能:使用BGAPI SDK可以有效地控制和管理Baumer工业相机的帧率,对于需要高帧率的应用环境,比如高速检测或者实时监控非常有帮助。

兼容性强:BGAPI SDK提供了用户友好的接口,兼容各种编程语言,使得开发者可以便捷地集成这个SDK到他们的系统或应用中。

精确控制:通过BGAPI SDK,开发者可以精确地控制每一帧的获取和处理,这对于需要精确控制的应用环境,如精密制造或科学研究非常重要。

稳定可靠:Baumer工业相机配合BGAPI SDK可以长时间稳定运行,支持连续抓取和处理大量的图像数据,对于需要长时间运行的工业应用尤其重要

Baumer工业相机通过BGAPI SDK获取帧率的行业应用

Baumer工业相机通过BGAPI SDK获取帧率,其应用广泛涵盖了多个行业,这些包括但不限于:

制造业:在自动化生产线中,这种相机可以进行高帧率的视觉检测,检测产品质量问题或生产线的故障。

机器视觉:在自动化设备的构建中,比如机器人,这种相机可以进行高速的图像采集和处理,帮助机器进行准确的识别和操作。

交通监控:在交通监控中,如车牌识别,行人检测等,高帧率相机可以提供流畅且清晰的图像,保证识别的准确性。

医疗设备:在高级医疗设备中,如手术机器人,这种相机可以快速捕捉手术现场的详细图像,帮助医生进行精确的操作。

所以,无论是对于显微镜观察、流水线检查、外科手术辅助,还是交通监控,利用BGAPI SDK进行帧率控制的Baumer工业相机都能提供极高的性能表现


http://www.mrgr.cn/p/68351855

相关文章

算法通关村第三关——不简单的数组增删改查

线性表基础 线性表概念 线性表就是具有相同特征数据元素的一个有限序列,其中包含元素的个数称为线性表的长度 线性表类型 从不同的角度看,线性表有不同的分类 语言实现角度 顺序表有两种实现方式 一体式 分离式 一体式结构 一体式:存储信息…

Vue3通透教程【十六】TS编译配置

文章目录 🌟 写在前面🌟 初始化配置文件⭐ target⭐ module⭐ lib⭐ types/node⭐ include⭐ outDir🌟 写在最后 🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更…

ARM将常数加载到寄存器方法之LDR伪指令

一、是什么? LDR Rd,const伪指令可在单个指令中构造任何32位数字常数,使用伪指令可以生成超过MOV和MVN指令 允许范围的常数. 实现原理: (1)如果可以用MOV或MVN指令构造该常数,则汇编程序会生成适当的指令 (2)如果不能用MOV或MVN指令构造该常数,则汇编程序会执行下列…

Java maven的下载解压配置(保姆级教学)

mamen基本概念 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以…

form-data 提交文件请求远程调用

文件请求方法 /*** 上传图文消息内的图片 获取url* 富文本内的图片** param file*/public static String uploadMediaGetUrl(File file) throws IOException {if (!file.exists()) {return null;}String responseData null;try {String url "http://localhost:8503/fil…

FFmpeg aresample_swr_opts的解析

ffmpeg option的解析 aresample_swr_opts是AVFilterGraph中的option。 static const AVOption filtergraph_options[] {{ "thread_type", "Allowed thread types", OFFSET(thread_type), AV_OPT_TYPE_FLAGS,{ .i64 AVFILTER_THREAD_SLICE }, 0, INT_MA…

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测 近年来,随着城市化的不断推进和基础设施建设的不断发展,隧道建设也日益成为城市交通发展的必需品。然而,隧道建设中存在着一定的安全隐患,如地质灾害、地下水涌流等&…

C++STL库中的list

文章目录 list的介绍及使用 list的常用接口 list的模拟实现 list与vector的对比 一、list的介绍及使用 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向带头循环链表结构,双向带头循…

【Git】git企业开发命令整理,以及注意点

1.git企业开发过程 业务的分支大概有以下几个: master:代码随时可能上线 develop:代码最新 feature/xxx:实际业务开发分支 release/xxx:预发布分支 fix:修复bug分支 过程大概是这样的: 首…

HTML+CSS+JavaScript:轮播图自动播放

一、需求 轮播图如下图所示&#xff0c;需求是每隔一秒轮播图自动切换一次 二、代码素材 以下是缺失JS部分的代码&#xff0c;感兴趣的小伙伴可以先自己试着写一写 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /&…

【期末课程设计】学生成绩管理系统

因其独特&#xff0c;因其始终如一 文章目录 一、学生成绩管理系统介绍 二、学生成绩管理系统设计思路 三、源代码 1. test.c 2. Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h 前言&#xff1a; 学生成绩管理系统含教师…

Android 第三方库CalendarView

Android 第三方库CalendarView 根据需求和库的使用方式&#xff0c;自己弄了一个合适自己的日历&#xff0c;仅记录下&#xff0c;方便下次弄其他样式的日历。地址 需求&#xff1a; 只显示当月的数据 默认的月视图有矩形的线 选中的天数也要有选中的矩形框 今天的item需要…

浏览器安装selenium IDE插件并进行网页测试记录

Chrome开发者工具插件,谷歌浏览器开发者工具插件推荐下载_安装_教程-扩展迷 去官网直接搜索下载需要的插件就可。 插件下载安装-Chrome-扩展迷 下载好后解压&#xff1a; 打开Chrome谷歌浏览器&#xff1a; 设置>拓展程序>打开"开发者模式”>将下载好的seleni…

python结合tesseract-ocr识别汉字的训练库过程

一、安装python 例如&#xff0c;安装路径为&#xff1a;C:\rtkapp\python-3.8.0 二、安装opencv 三、安装tesseract-ocr 安装完成后&#xff0c;在系统环境变量path中&#xff0c;添加安装路径C:\rtkapp\Tesseract-OCR 四、打开python安装pytesseract 五、安装java运行环境…

状态机实现N位按键消抖

状态机实现N位按键消抖 1、原理 利用状态机实现按键的消抖&#xff0c;具体的原理可参考 (50条消息) 基于FPGA的按键消抖_fpga 按键消抖_辣子鸡味的橘子的博客-CSDN博客 状态机简介&#xff1a; 状态机分类可以主要分为两类&#xff1a;moore和mealy 根据三段式状态机最后…

婚庆服务小程序app开发方案详解

开发一款婚庆行业服务小程序有哪些功能呢&#xff1f; 1、选择分类 选择婚庆、婚车、婚宴、司仪、彩妆、婚庆用品、跟拍、摄影等&#xff0c;筛选出对应的商家 2、选择商家 选择分类后&#xff0c;可以选择商家&#xff0c;查看各个商家的详细介绍情况。 3、选择服务套餐 各…

飞书ChatGPT机器人 – 打造智能问答助手实现无障碍交流

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话&#xff0c;在下面操作步骤中…

gin框架内容(三)--中间件

gin框架内容&#xff08;三&#xff09;--中间件 Gin框架允许开发者在处理请求的过程中&#xff0c;加入用户自己的函数。这个函数就叫中间件&#xff0c;中间件适合处理一些公共的业务逻辑&#xff0c;比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如&#x…

Generative Diffusion Prior for Unified Image Restoration and Enhancement 论文阅读笔记

这是CVPR2023的一篇用diffusion先验做图像修复和图像增强的论文 之前有一篇工作做了diffusion先验&#xff08;Bahjat Kawar, Michael Elad, Stefano Ermon, and Jiaming Song, “Denoising diffusion restoration models,” arXiv preprint arXiv:2201.11793, 2022. 2, 4, 6,…

rcu链表综合实践

基础知识 rcu-read copy update的缩写。和读写锁起到相同的效果。据说牛逼一点。对于我们普通程序员&#xff0c;要先学会使用&#xff0c;再探究其内部原理。 链表的数据结构&#xff1a; struct list_head {struct list_head *next, *prev; };还有一种&#xff1a;struct h…