Baumer工业相机堡盟工业相机如何通过NEOAPISDK实现根据每次触发信号移动感兴趣区域ROI(Python)

news2024/9/23 19:18:06

Baumer工业相机堡盟工业相机如何通过NEOAPISDK实现根据每次触发信号移动感兴趣区域ROI(Python)

  • Baumer工业相机
  • Baumer工业相机定序器功能的技术背景
  • Baumer工业相机通过NEOAPI SDK使用定序器功能
    • 预期的相机动作
    • 测试的图像效果
  • Baumer工业相机通过NEOAPI SDK使用定序器功能移动ROI具体实现方法
    • 1.引用合适的类文件
    • 2.通过NEOAPI SDK开启三组定序器功能实现移动感兴趣区域ROI
  • Baumer工业相机使用定序器根据每次触发信号移动感兴趣区域ROI图像的优势
  • Baumer工业相机使用定序器根据每次触发信号移动感兴趣区域ROI图像的行业应用

Baumer工业相机

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

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

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

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

Baumer工业相机堡盟相机在SDK中提供了一种介绍如何通过定序器在图像中将感兴趣区域(ROI)移动到预定位置,以便采集移动物体的重要细节的方法。

Baumer工业相机定序器功能的技术背景

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等。

工业相机的 定序器Sequencer 功能是一种高级的编程功能,允许用户将多种拍摄参数设置成独立的序列,实现对相机的自动切换控制以满足多种不同的应用需求。使用 Sequencer 功能可以实现在一个拍摄周期内,完成多个曝光、图像传输和处理任务,从而提高工程效率和质量。

Baumer工业相机通过NEOAPI SDK使用定序器功能


下面介绍在Python里Baumer工业相机如何通过NEOAPI进行定序器编程:根据每次触发信号移动感兴趣区域。

预期的相机动作

从理论上讲,该方法首先要求相机设置为触发模式,当每次收到触发信号时,根据每次触发信号移动感兴趣区域。

本文将介绍如何通过定序器在图像中将感兴趣区域(ROI)移动到预定位置,以便采集移动物体的重要细节。定序器的每一步操作都通过外部信号触发。这样可以将配置参数进行封装,用户仅传输和处理当前图像分析任务所需的数据。

如需了解有关定序器用途的更多详细信息,请参阅下方的应用说明,其中详细介绍了定序器的工作原理和功能。
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现一次触发多张图像采集(C#)

测试的图像效果

如图所示为所述序列产生的图像效果。通过在图像中移动感兴趣区域,可直接在相机内对药瓶图像进行虚拟剪裁。
在这里插入图片描述

Baumer工业相机通过NEOAPI SDK使用定序器功能移动ROI具体实现方法

下面介绍在C#里Baumer工业相机如何通过NEOAPI SDK使用定序器实现根据每次触发信号移动感兴趣区域ROI。

在收到触发信号后,序列便会开始运行,因此必须将TriggerSource设置为Line0。

1.引用合适的类文件

代码如下(示例):

import sys
import neoapi

2.通过NEOAPI SDK开启三组定序器功能实现移动感兴趣区域ROI

Baumer工业相机设置定序器功能模式实现根据每次触发信号移动感兴趣区域ROI核心代码如下所示:

import sys
import neoapi

camera = neoapi.Cam()
# 连接camera
camera.Connect() 

# 设置曝光时间和帧率
camera.f.ExposureTime.Set(10000)
camera.f.AcquisitionFrameRateEnable.value = True
camera.f.AcquisitionFrameRate.value = 10
                 

#  停止启动并加载默认参数
camera.f.AcquisitionStop.Execute();  	
camera.f.UserSetSelector.Set(UserSetSelector.Default); //选择相机Default设置 	
camera.f.UserSetLoad.Execute();				 		   //执行UserSet1载入   

# 设置第一张硬件触发输入参数
camera.f.TriggerMode.ValueString  = "On";
camera.f.TriggerSource.ValueString  = "Line0";
camera.f.TriggerActivation.ValueString  = "RisingEdge";
camera.f.TriggerDelay.Value  =(double)0.0; 
camera.f.LineSelector.ValueString  = "Line0";
camera.f.LineInverter.Value  = false;
camera.f.LineDebouncerHighTimeAbs.Value  =(double)1.0; 
camera.f.LineDebouncerLowTimeAbs.Value  =(double)1.0; 
	
	
# 开启定序器设置模式
camera.f.SequencerConfigurationMode.ValueString  = "On";


# 开启定序器设置模式
camera.f.SequencerConfigurationMode.ValueString  = "On";

# 设置第一组定序器功能Set0
camera.f.SequencerSetSelector.Value  = (long)0;
camera.f.SequencerSetLoad.Execute();	//执行第一组定序器参数载入                         
camera.f.TriggerMode.ValueString  = "On";
	
# 	设置左上方的 ROI(VGA)
camera.f.OffsetX.Value = (long)0;
camera.f.OffsetY.Value = (long)0;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)240;
camera.f.OffsetX.Value = (long)0;
camera.f.OffsetY.Value = (long)0;
	
#  设置第一组定序器Set0的曝光参数
	camera.f.ExposureTime.Value =  (double)1500.0;  
	camera.f.SequencerPathSelector.Value =  (long)0;
	camera.f.SequencerTriggerSource.ValueString  =  "ExposureActive";
	camera.f.SequencerTriggerActivation.ValueString  =  "RisingEdge";
	camera.f.SequencerSetNext.Value =   (long)1;
	camera.f.SequencerSetSave.Execute();	//执行第一组定序器参数保存

	
	# 设置第二组定序器功能Set1
	camera.f.SequencerSetSelector.Value  = (long)1;
	camera.f.SequencerSetLoad.Execute();	//开启第二组定序器参数                      
	camera.f.TriggerMode.ValueString  = "On";
	
	# 	设置中心的 ROI(VGA)
	camera.f.OffsetX.Value = (long)0;
	camera.f.OffsetY.Value = (long)0;
	camera.f.Width.Value = (long)320;
	camera.f.Height.Value = (long)240;
	camera.f.OffsetX.Value = (long)160;
	camera.f.OffsetY.Value = (long)120;


	camera.f.SequencerSetSelector.Value  = (long)0;
	camera.f.SequencerTriggerSource.ValueString  = "ExposureActive";
	camera.f.SequencerTriggerActivation.ValueString  = "RisingEdge";
	camera.f.SequencerSetNext.Value =   (long)2;
	camera.f.SequencerSetSave.Execute();	//执行第二组定序器参数保存
	

	# 设置第三组定序器功能Set2
	camera.f.SequencerSetSelector.Value  = (long)2;
	camera.f.SequencerSetLoad.Execute();	//开启第二组定序器参数                      
	camera.f.TriggerMode.ValueString  = "On";
	
	# 	设置右下方的 ROI(VGA)
	camera.f.OffsetX.Value = (long)0;
	camera.f.OffsetY.Value = (long)0;
	camera.f.Width.Value = (long)320;
	camera.f.Height.Value = (long)240;
	camera.f.OffsetX.Value = (long)320;
	camera.f.OffsetY.Value = (long)240;


	camera.f.SequencerSetSelector.Value  = (long)0;
	camera.f.SequencerTriggerSource.ValueString  = "ExposureActive";
	camera.f.SequencerTriggerActivation.ValueString  = "RisingEdge";
	camera.f.SequencerSetNext.Value =   (long)0;
	camera.f.SequencerSetSave.Execute();	//执行第二组定序器参数保存
	# 设置第一步执行为第一组定序器set0
	camera.f.SequencerSetStart.Value =   (long)0;

	
	# 定序器参数设置结束
	camera.f.SequencerConfigurationMode.ValueString  =  "Off";

	#  开启相机定序器功能
	camera.f.SequencerMode.ValueString  =  "On";
	camera.f.AcquisitionStart.Execute();  	

	# 通过触发信号,可以用获取根据每次触发信号移动感兴趣区域ROI的图像

	# 停止相机定序器功能
	camera.f.AcquisitionStop.Execute();  	
	camera.f.SequencerMode.ValueString  =  "Off";

  

Baumer工业相机使用定序器根据每次触发信号移动感兴趣区域ROI图像的优势

使用工业相机的定序器功能根据每次触发信号移动感兴趣区域(ROI)图像有以下优势:

  1. 实时跟踪: 通过定序器功能,相机可以根据触发信号实时移动感兴趣区域,这意味着在连续帧图像中能够准确追踪目标或场景中的感兴趣部分,从而使得监测、分析和控制更加精准和有效。

  2. 降低数据处理量: 在图像捕捉过程中,移动ROI可以减少图像数据的处理量,仅捕捉和处理感兴趣区域,从而节省计算资源和提高系统的实时性。

  3. 提高图像质量: 通过移动ROI,可以将焦点集中在目标区域,因此能够提高感兴趣区域的图像清晰度和质量,从而更好地满足特定的分析需要。

  4. 节省存储空间: 移动ROI可以减少需要存储的图像数据量,进而节省存储空间,这点在对大量图像进行实时处理和存储时尤为重要。

  5. 适用于动态场景: 在动态场景下,通过移动ROI可以实现对目标的动态追踪,并且保持其在图像中的位置,使得在复杂环境中进行目标监测和分析更加有效。

综上所述,使用工业相机的定序器功能根据每次触发信号移动感兴趣区域(ROI)图像能够提高实时性、准确性和效率,对于许多需要动态目标监测和分析的行业应用具有明显的优势。

Baumer工业相机使用定序器根据每次触发信号移动感兴趣区域ROI图像的行业应用

工业相机使用定序器根据每次触发信号移动感兴趣区域(ROI)图像在许多行业中具有重要应用价值,以下是一些典型的行业应用:

  1. 自动化制造: 在自动化制造过程中,工业相机可以根据每次触发信号移动ROI图像,从而用于产品定位、零件检测和快速监测,在高速流水线上实现准确而高效的品质控制。

  2. 医疗影像: 在医疗领域,工业相机的定序器功能可用于实时移动ROI图像,帮助医疗人员精确定位和监测医学影像中的特定结构和病变,有助于诊断和手术支持。

  3. 交通监控: 在交通监控系统中,工业相机可以根据每次触发信号移动ROI图像,用于快速准确地捕捉车辆、行人或交通违规行为,提高交通监控的精度和效率。

  4. 智能安防: 工业相机根据每次触发信号移动ROI图像还能应用于智能安全监控系统中,实现对特定区域或目标的精确定位和跟踪,提高安防系统的实时性和反应能力。

  5. 机器视觉: 在机器视觉领域,工业相机的定序器功能可用于根据每次触发信号移动ROI图像,用于机器人导航、物品识别和智能制造等应用,提高机器视觉系统的灵活性和适用性。

通过工业相机的定序器功能根据每次触发信号移动感兴趣区域(ROI)图像,可以提高图像捕捉的精度和实时性,适用于许多行业中对动态目标的监测、定位和分析的应用场景。

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

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

相关文章

LoRA - 大型语言模型的低秩适应方法

人工智能咨询培训老师叶梓 转载标明出处 大规模预训练模型,如GPT-3,拥有高达1750亿参数,全参数微调不仅计算成本高昂,而且部署和维护多个微调实例变得非常困难。而且全参数微调需要大量的GPU内存,限制了同时训练的模型…

go 切片slice学习总结

切片的结构 切片的底层结构: type SliceHeader struct {Data uintptr // 指向底层数组的指针 Len int //长度Cap int //空间容量 } 切片的初始化 1 通过数组或者已有的slice创建新的slice 1.1 使用数组创建切片 通过数组的一部分来初始化切片。 …

fixed、absolute 和 relative 布局

https://andi.cn/page/621716.html

计算机视觉编程 1(图片处理)

目录 灰色度 缩略图 拷贝粘贴区域 调整图像尺寸 旋转图像45 画图线、描点 灰色度 灰度是指图像中每个像素的亮度值,用来描述图像中各个像素的明暗程度。在计算机视觉中,灰度可以通过以下方式来计算: 1. 平均值法:将图像中每…

核心技术揭秘:AI、低代码与定制开发的三重奏,如何应对复杂业务需求

背景介绍 在当今迅速发展的数字化时代,企业面临的业务环境变得日益复杂和多变。无论是面对不断变化的市场需求,还是处理海量数据并从中获取洞察力,企业都需要快速响应并灵活调整自身的策略。传统的开发模式在应对这种复杂性时往往显得力不从心…

大模型提示词工程技术2-设计有效的提示词技巧、角色与上下文在提示中的应用

大模型提示词工程技术2-设计有效的提示词技巧、角色与上下文在提示中的应用。《大模型提示词工程技术》的作者:微学AI,这是一本专注于提升人工智能大模型性能的著作,它深入浅出地讲解了如何通过优化输入提示词来引导大模型生成高质量、准确的…

技术赋能数字化转型:百数低代码平台在试点城市的应用与实践

在当今信息化高速发展的时代,数字化转型已成为城市和企业发展的必然趋势。为了推动这一进程,数字化转型城市试点政策应运而生。“据了解,中央财政将对每个试点城市给予1亿元资金奖补,支持中小企业实施数字化改造,以数字…

5 - ZYNQ GPIO

文章目录 0 前言1 GPIO基本概念1.1 MIO-EMIO基本介绍1.2 MIO-EMIO连接情况 0 前言 本文来参考博主徐晓康的博文 ZYNQ7000-GPIO详解,仅作为个人学习记录。 1 GPIO基本概念 在ZYNQ中,GPIO(General Purpose Input/Output,通用输入…

嵌入式RTOS正在缩小与Linux系统之间的差异

RTOS与Linux的物联网设备操作系统之争已经持续了很多年。Linux以其强大的计算能力和丰富的软件生态,在需要复杂处理和软件支持的物联网设备上占据一席之地;RTOS凭借实时响应和资源节约的特性,在对实时性和资源占用有严格要求的场景中独领风骚。 如果时间倒回五年前,那…

[C++] C++11详解 (三)类的成员函数、完美转发

标题:[C] C11详解 (三)完美转发与lambda表达式 水墨不写bug 目录 一、C11新增两个类的默认成员函数 1.强制生成默认函数的关键字default: 2.禁止生成默认函数的关键字delete: 二、完美转发 正文开始: 一、C11新增两个类的默…

【YOLO5 项目实战】(8)PyQt5 图形界面—PCB缺陷检测系统

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO5 项目实战】(8)PyQt5 图形界面—PCB缺陷检测系统 1. PyQt5 图形界面开发工具1.1 PyQt5 的安装1.2 在 PyCharm 集成 QtDesigner 和 PyUIC1.3 使用 QtDesigner 开发 PyQt…

EPLAN在安装完成之后,输入文字时出现卡顿和死机的解决办法

EPLAN在安装完成之后,输入文字时出现卡顿和死机的解决办法 EPLAN在安装完成之后,插入文字时有时会卡顿,甚至出现软件卡死,无任何反映的情况,具体的解决办法可参考以下内容: 找到电脑右下角的输入法,右击进入设置, 如下图所示,点击进入常规设置, 如下图所示,向下找…

终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略

作者:ysevenk_7 参赛准备 我是机缘巧合在 6 月底了解到了天池云原生编程挑战赛,于是乎搜了一下,之前本人对于比赛并没有太多经验,看了大赛介绍之后莫名兴奋,果断拉了队友报名,完成认证、起队名、下载插件…

【STM32】RS485

RS485是常见的串口接口。 大部分图片来源:正点原子HAL库课程 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 串口、UART、TTL、RS232、RS422、RS485的关系 1.1 串口 1.2 UART、TTL、RS232、RS422、RS485 1.3 常见串口标准的比较 …

Apache Arrow 的列式内存格式

Apache Arrow 的列式存储格式是一种内存数据组织标准,它通过物理布局、Array(数组)、Schema(模式)和 RecordBatch(记录批次)等,优化了大数据的存储与处理。这种格式以列而非行来存储…

更改网络ip地址时出现错误怎么办

在日常的网络使用中,‌有时我们需要更改IP地址以满足特定的网络需求,‌然而,‌在更改IP地址的过程中,‌可能会遇到各种错误,‌导致无法成功更改或网络连接出现问题。‌‌而更改网络IP地址时出现错误是由于多种原因导致…

二、基于Vue3的开发-环境搭建【Visual Studio Code】扩展组件

Visual Studio Code中的扩展组件 1、安装的扩展工具2、说明2.1 、代码规范性检查EsLint2.2 、代码语法高亮提示工具Vue - Official2.3 、阿里的AI代码开发提示工具 TONGYI Lingma 1、安装的扩展工具 2、说明 2.1 、代码规范性检查EsLint Visual Studio Code 中【设置】-setti…

基于元神操作系统编程写硬盘扇区

1. 背景 本文介绍了“调用元神操作系统API向硬盘扇区写数据”的程序实现及测试结果。 2. 方法 (1)调用元神操作系统API读硬盘扇区 本部分内容已在前面的文章中进行介绍,详细内容请参考“编写程序调用元神操作系统的API”。 (…

二叉树 - 二叉树的所有路径

257. 二叉树的所有路径 方法一:递归法: /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefi…

水下目标检测(低光照目标检测)方法-发表在Patter Recognition,代码已开源

这里写自定义目录标题 前言动机贡献Overview一些实验结果数据集主要实验结果实验结果展示 总结 前言 Hi,各位读者,好久不见!现在我已经从北大博士毕业,成为一名小青椒啦!工作还是需要宣传的。今天想分享我在水下目标检测的工作&a…