Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)

简介: Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机


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


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


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


Baumer工业相机堡盟相机中ROI功能是一种可以直接设置在图像芯片中进行区域设置感兴趣的区域的功能,然后在相机内部对图像进行部分扫描的剪切然后再传输到处理器中,可以在一定程度上提供工业相机的的采集帧率。


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


Baumer工业相机的图像剪切(ROI)功能的技术背景


Baumer工业相机中的ROI(感兴趣区域)功能允许用户选择图像中他们想重点分析或处理的特定部分。这可以提高图像处理系统的效率,因为它可以排除多余的或不必要的数据。


ROI功能的工作原理是在较大的图像框架内选择一个矩形区域。然后相机只对这个较小的区域应用所有后续的图像处理算法。这可以提高图像分析的速度和准确性,因为它减少了需要处理的数据量。


总的来说,Baumer工业相机的ROI功能可以减少处理时间,提高图像分析的准确性,使其成为各种工业应用中的有用工具。


CameraExplorer如何使用图像剪切(ROI)功能


Baumer工业相机 的相机软件Camera Explorer可以可视化便捷地进行使用图像剪切(ROI)功能


首先,双击进入相机界面


然后选择相机页面中左上角标题菜单栏中的Widgets,并选择其中的Image Format。


然后在软件右侧出现相机功能相关信息,如下所示:


通过设置图上的Width和Height可以使用设置相机的图像剪切(ROI)功能,如下图所示:


通过设置当前图像Height为199,则此时相机的图像执行了图像剪切(ROI)功能,如上图所示:


在BGAPI SDK里通过函数使用图像剪切(ROI)功能


在相机连接后使用图像剪切(ROI)功能,C++调用代码如下所示:

//设置工业相机图像剪切ROI功能
void CGigeDemoDlg::OnBnClickedBtnsetroi()
{
  // 获取设置窗体中输入的ROI对应的长度和宽度
  CString strROIWIDTH,strROIHEIGHT;
  m_editWidth.GetWindowText(strROIWIDTH);
  m_editHEIGHT.GetWindowText(strROIHEIGHT);
  int nROIWIDTH = _wtol(strROIWIDTH);
  int nROIHEIGHT = _wtol(strROIHEIGHT);
  if(m_pDevice != NULL)
  {
    //执行停止相机采集命令
    m_pDevice->GetRemoteNode("AcquisitionStop")->Execute();
    //暂时关闭相机数据流
    for(BGAPI2::DataStreamList::iterator dsL = m_pDatastreamList->begin(); dsL != m_pDatastreamList->end();dsL++)
    {
      if(dsL->second->IsOpen())
        m_pDataStream->StopAcquisition(); 
    }
    int CamWidth = (int)m_pDevice->GetRemoteNode("Width")->GetDouble();
    int CamHeight = (int)m_pDevice->GetRemoteNode("Height")->GetDouble();
    //设置相机ROI截切功能
     if(!((CamWidth == nROIWIDTH) & (CamHeight = nROIHEIGHT)))
     {
      m_pDevice->GetRemoteNode("Width")->SetDouble(nROIWIDTH);
      m_pDevice->GetRemoteNode("Height")->SetDouble(nROIHEIGHT);
     }
    //重新开启相机数据流
    for(BGAPI2::DataStreamList::iterator dsL = m_pDatastreamList->begin(); dsL != m_pDatastreamList->end();dsL++)
    {   
      try 
      {
        if(!dsL->second->IsOpen())
          m_pDataStream->Open();  
        m_pDataStream->StartAcquisitionContinuous();
      }
      catch (BGAPI2::Exceptions::IException& ex) 
      {}
    }
  }
}


Baumer工业相机通过BGAPI SDK使用图像剪切(ROI)功能的优势


Baumer工业相机的ROI(感兴趣区域)功能具有显著的优势,包括


  1. 提高精度:通过突出图像中的特定感兴趣区域,ROI功能可以使测量和分析更加精确和准确。


  1. 减少了处理时间。通过将处理能力集中在图像的特定区域,ROI功能减少了需要处理的数据量,从而使分析和处理时间更快。


  1. 提高图像质量。ROI功能可用于裁剪掉图像中不需要的区域,从而获得更高的分辨率和更好的图像质量。


  1. 增加灵活性。ROI功能允许用户实时定制感兴趣的区域,能够更有效地监测和分析感兴趣的特定区域。


  1. 提高动态范围。ROI功能还可用于提高图像的动态范围,因为它使用户能够调整图像内特定区域的曝光设置。


总的来说,工业相机的ROI功能可以在广泛的工业应用中显著提高成像和分析的准确性、速度和效率。


Baumer工业相机通过BGAPI SDK使用图像剪切(ROI)功能的行业应用


Baumer工业相机的ROI(感兴趣区域)功能可以有各种场景应用。下面是几个例子。


  1. 质量控制和检查。ROI功能可用于聚焦于产品或样品中的某一感兴趣的区域,并捕获高质量的图像进行分析。


  1. 机器视觉。在自动化制造过程中,ROI功能可以帮助识别生产线上的特定零件或部件,以便进行检查和分析。


  1. 监视和安全。投资回报率功能可用于放大监控视频画面中的特定区域,确保高清晰度地捕捉到任何可疑的活动。


  1. 科学研究。在生物技术或材料科学等领域,ROI功能可以帮助研究人员捕捉样品、细胞或材料的详细图像进行分析。


总的来说,ROI功能使工业相机能够捕捉和ROI的特定区域,使其成为各行业的宝贵工具。

目录
相关文章
|
缓存 算法 安全
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)(三)
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)
773 1
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
1482 170
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
406 5
|
算法 网络协议 数据挖掘
C++是一种功能强大的编程语言,
C++是一种功能强大的编程语言,
378 14
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
1867 0
|
算法 编译器 C++
【C++入门到精通】新的类功能 | 可变参数模板 C++11 [ C++入门 ]
【C++入门到精通】新的类功能 | 可变参数模板 C++11 [ C++入门 ]
209 1
|
存储 安全 C语言
C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数
C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数
|
搜索推荐 算法 大数据
【C++ 标准库排序算法】C++标准库中的排序算法深入解析:功能、原理与应用
【C++ 标准库排序算法】C++标准库中的排序算法深入解析:功能、原理与应用
901 0
|
算法 数据安全/隐私保护 C++
【C/C++ 编程题 03】用两个栈实现一个队列的功能
【C/C++ 编程题 03】用两个栈实现一个队列的功能
137 0
|
算法 编译器 C语言
【C/C++ 编程题 02】用两个栈实现一个队列的功能
【C/C++ 编程题 02】用两个栈实现一个队列的功能
476 0