Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C++)

简介: Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C++)

Baumer工业相机


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


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


Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。


Baumer工业相机NEOAPI SDK是用于Baumer工业相机的一款最新的软件开发工具包(SDK)。它为开发人员提供了一系列API和工具,用于与Baumer工业相机进行通信和控制,控制方式极为便捷类似Halcon的相机助手类控制方式。


Baumer工业相机堡盟相机中Binning像素合并功能是一种通过允许多个像素合并成一个较大像素的功能。它一般称为Binning模式,分为Binning 黑白模式和Binning 彩色模式。


Baumer工业相机NEOAPI SDK和短曝光功能的技术背景


Baumer工业相机的NEOAPI SDK是Baumer公司开发的针对其相机产品系列的一套软件开发工具包。该SDK提供了一组API,使开发人员可以编写专业应用程序,从而控制、捕获、处理和显示Baumer相机的图像和数据。BGAPI SDK支持多种编程语言,包括C++、C#、Visual Basic、LabVIEW、Matlab等,并提供了大量示例代码和文档,以帮助用户轻松上手,快速完成应用程序的开发。


NEOAPI SDK提供了丰富的功能,可以控制Baumer相机的所有参数,包括曝光时间、增益、白平衡、触发模式等,以及支持各种数据格式,例如Raw、BMP、JPG等,同时还提供了实时显示、数据采集、图像处理等功能,为开发人员提供了高度定制化的解决方案。此外,BGAPI SDK还支持多相机系统的开发,并可支持各种计算机操作系统,如Windows、Linux、Mac OS等。


Baumer工业相机的像素合并功能是一种允许多个像素合并成一个较大像素的功能。这一功能通常用于增加相机捕获的图像的动态范围,以及提高对光线的敏感性。


像素合并可以通过两种方式进行:水平和垂直。水平像素合并将同一行的相邻像素合并,而垂直像素合并将不同行的像素合并。


通过合并像素,相机可以产生具有更高的细节、更少的噪音和在低光照条件下更好的照明的图像。由此产生的图像通常具有更高的质量,更适合分析和处理。


总的来说,像素合并功能是工业相机的一个重要特征,可以帮助提高各行业成像应用的准确性和可靠性,如医疗成像、质量控制和监控。


Baumer工业相机中的Binning模式分为Binning黑白模式和Binning彩色模式


Baumer工业相机通过CameraExplorer软件使用Binning功能


Baumer工业相机的相机软件Camera Explorer可以可视化便捷地进行Binning功能的设置


首先,双击进入相机界面


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


最后在Camera Explorer界面的右侧会出现Image Format的功能界面


其中,Binning中的Horizontal为水平方向的像素合并,Vertical则垂直方向的像素合并。


Baumer工业相机通过NEOAPI SDK使用Binning功能


下面介绍在C++里Baumer工业相机如何通过NEOAPI SDK使用短曝光功能方式


1.引用合适的类文件


代码如下(示例):

#include <stdio.h>
#include <iostream>
#include "bgapi2_genicam/bgapi2_genicam.hpp"
#include <iostream>
#include <iostream>
#include "neoapi.hpp"


2.通过NEOAPI SDK使用Binning功能


Baumer工业相机设短曝光功能模式C++核心代码如下所示:

NeoAPI::Cam camera = NeoAPI::Cam();
camera.Connect();
camera.f().ExposureTime.Set(10000);
int width = static_cast<int>(camera.f().Width);
int height = static_cast<int>(camera.f().Height);
if (camera.IsConnected())
{   
  //  获取当前相机的图像的像素格式   
  NeoAPI::NeoString CurPixelFormat = camera.f().PixelFormat.GetString();
  CString CurPixelFormatstr = (CString)CurPixelFormat;    
  NeoAPI::FeatureList FeatureListS = camera.f().PixelFormat.GetEnumValueList();
  // 检查该相机是否存在Binning模式
  if (camera.f().BinningHorizontal.IsAvailable())
  {
    // 开启Binning功能
    camera.f().BinningHorizontalMode.Set(TRUE);
    // 设置BinningHorizontal为2
    camera.f().BinningHorizontal.Set(2);
    // 开启Binning功能
    camera.f().BinningVertical.Set(TRUE);
    // 设置BinningVertical为2
    camera.f().BinningVertical.Set(2);
    // 设置相机为自由采集模式
    camera.f().TriggerMode.Set(NeoAPI::TriggerMode::Off);
    // 启动相机开始采集  
    camera.f().AcquisitionStart.Execute();
    // 采集一张图像 
    NeoAPI::Image image = camera.GetImage();
      //  保存采集图像
      CString strtime;
    strtime.Format(_T("\\%4d%2d%2d%2d%2d%2d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
    CString  strpath = m_strDirectory + strtime + "-";
    CString  strpath2;
    strpath2.Format(_T("%s%d"), strpath, image.GetImageID());
    // 转换图像名称为NeoAPI::NeoString格式,然后保存对应路径
    USES_CONVERSION;
    std::string strpath2str(W2A(strpath2));
    const char* strpath2str2 = strpath2str.c_str();
    NeoAPI::NeoString strpath3 = strpath2str2;
    image.Save(strpath3);
    image.Save("neoapi-sdk-Binning-image");     
  }
}


Baumer工业相机使用Binning功能的优势


工业相机的像素合并功能提供了几个优势:


  1. 提高灵敏度。像素合并将相邻像素的像素值结合起来,形成一个更敏感的传感器。这有助于检测低光,提高图像质量。


  1. 减少噪音。像素合并有助于通过平均多个像素的像素值来减少图像中的噪音。这有助于实现更高的信噪比,从而获得更清晰的图像。


  1. 提高分辨率。合并像素可以通过将多个像素合并为一个像素来提高图像的分辨率。这可以帮助捕捉到图像中的精细细节。


  1. 减少数据大小。合并像素可以减少表示图像所需的数据量,这在需要传输或储存数据的应用中很有用。


总的来说,工业相机中的像素合并功能可以显著提高图像质量,使其成为各种应用中的宝贵工具,包括机器视觉、监控和科学成像。


Baumer工业相机使用Binning功能的行业应用


工业相机的像素合并功能有几个场景的应用:


  1. 图像增强。像素合并可以通过减少噪声和提高信噪比来提高图像质量。


  1. 高分辨率成像。像素合并可以使相机通过合并多个像素的数据来产生高分辨率的图像。


  1. 弱光成像。像素合并可以通过合并多个像素的数据和增加整体信号来提高相机在低光环境下的灵敏度。


  1. 深度感知。像素合并可用于通过合并立体相机的视图来创建深度图。


  1. 超高速成像。像素合并可以使相机通过合并一组像素的数据并以高速度记录来捕捉超高速的图像。


总的来说,像素合并功能在许多对清晰度和精确度要求很高的工业成像应用中非常有用。

目录
相关文章
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
239 0
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
1042 0
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C++)
165 0
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
1168 1
|
7月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
3月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
85 0
|
3月前
|
存储 编译器 程序员
c++的类(附含explicit关键字,友元,内部类)
本文介绍了C++中类的核心概念与用法,涵盖封装、继承、多态三大特性。重点讲解了类的定义(`class`与`struct`)、访问限定符(`private`、`public`、`protected`)、类的作用域及成员函数的声明与定义分离。同时深入探讨了类的大小计算、`this`指针、默认成员函数(构造函数、析构函数、拷贝构造、赋值重载)以及运算符重载等内容。 文章还详细分析了`explicit`关键字的作用、静态成员(变量与函数)、友元(友元函数与友元类)的概念及其使用场景,并简要介绍了内部类的特性。
165 0
|
5月前
|
编译器 C++ 容器
【c++11】c++11新特性(上)(列表初始化、右值引用和移动语义、类的新默认成员函数、lambda表达式)
C++11为C++带来了革命性变化,引入了列表初始化、右值引用、移动语义、类的新默认成员函数和lambda表达式等特性。列表初始化统一了对象初始化方式,initializer_list简化了容器多元素初始化;右值引用和移动语义优化了资源管理,减少拷贝开销;类新增移动构造和移动赋值函数提升性能;lambda表达式提供匿名函数对象,增强代码简洁性和灵活性。这些特性共同推动了现代C++编程的发展,提升了开发效率与程序性能。
162 12
|
6月前
|
设计模式 安全 C++
【C++进阶】特殊类设计 && 单例模式
通过对特殊类设计和单例模式的深入探讨,我们可以更好地设计和实现复杂的C++程序。特殊类设计提高了代码的安全性和可维护性,而单例模式则确保类的唯一实例性和全局访问性。理解并掌握这些高级设计技巧,对于提升C++编程水平至关重要。
125 16
|
7月前
|
编译器 C语言 C++
类和对象的简述(c++篇)
类和对象的简述(c++篇)