Baumer工业相机堡盟工业相机如何实现一次图像采集同时检测产品的5个面甚至多个面(C#)(NEOAPI SDK)

Baumer工业相机堡盟工业相机如何实现一次图像采集同时检测产品的5个面甚至多个面(C#)(NEOAPI SDK)

  • Baumer工业相机
  • 光学棱镜反射图像的技术背景
  • 工业相机ROI功能的技术背景
  • 图像处理多线程功能的技术背景
  • Baumer工业相机通过棱镜同时检测使用产品的5个面
    • 1.使用四个棱镜反射显示所检测面图像
    • 2.使用Baumer Neoapi SDK中的ROI图像剪切功能进行线程图像处理
  • 工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业优势
  • 工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业应用
      • 电子制造行业
      • 汽车制造行业
      • 机械加工行业
      • 食品饮料行业
      • 制药行业

Baumer工业相机

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

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

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

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

工业视觉检测中一些场景应用中,需要同时采集单个产品多个面进行同时的图像采集和图像检测,由于场景本身的限制,或者成本的控制,采用多个相机拍摄不同的产品面变得较为困难。

堡盟相机对于这种情况具有丰富的经验,首先采用棱镜的方法布局在产品的四周,将四周检测面通过棱镜反射到相机面,其次采用ROI的方式对图像中不同棱镜呈现的产品检测面进行截取,生成产品不同面的多组图像序列,最后在SDK中采用多线程同步方法同时对图像序列进行视觉检测。

在这里插入图片描述

光学棱镜反射图像的技术背景

随着成像镜头在监控、安防、车载、投影、特殊环境探测、监视及生物医学检测等领域应用日益广泛,对大视场、大角度范围光学成像的需求增多。但传统技术下,大角度成像存在诸多难题,如视角大于 120° 后畸变量快速增长,图像严重变形,像差难以校正,且软件设计中光线易出错;同时加工成本较高,限制了大角度镜头的量产。而光学棱镜可通过旋转反射面角度等方式,助力实现大视场范围甚至全角度范围内物体的高清晰成像,满足成像技术发展的需求。
在这里插入图片描述

工业相机ROI功能的技术背景

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

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

图像处理多线程功能的技术背景

图像处理算法通常计算量巨大,如高清图像的滤波、特征提取、图像分割等操作。单线程处理时,处理器只能逐个执行任务,耗时较长。多线程技术允许将图像处理任务分解为多个子任务,分配到不同线程并行处理,充分利用处理器的多核资源,从而显著缩短处理时间,提高整体处理效率。

多线程技术为图像处理算法的研究和发展提供了新的思路和方法。研究人员可以设计更复杂、更高效的并行算法,充分利用多线程的优势来提升算法性能。
例如在基于深度学习的图像识别算法中,多线程可以用于并行计算神经网络的不同层或不同样本,加速模型的训练和推理过程,推动深度学习在图像处理领域的应用和发展。

在这里插入图片描述

Baumer工业相机通过棱镜同时检测使用产品的5个面

下面介绍在C#里Baumer工业相机如何通过NEOAPI SDK采集产品的5个面进行检测的功能

1.使用四个棱镜反射显示所检测面图像

如下图所示:
在这里插入图片描述

2.使用Baumer Neoapi SDK中的ROI图像剪切功能进行线程图像处理

Baumer工业相机ROI图像剪切功能进行线程图像处理功能模式核心代码如下所示:

import sys
import neoapicamera = 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载入   # 开启设置多ROI功能
camera.f.Region Mode.ValueString  = "On";# 设置第一个ROI区域位置大小
camera.f.Regionselector.Value  = "Region0";
camera.f.OffsetX.Value = (long)100;
camera.f.OffsetY.Value = (long)100;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)320;# 设置第二个ROI区域位置大小
camera.f.Regionselector.Value  = "Region1";
camera.f.OffsetX.Value = (long)200;
camera.f.OffsetY.Value = (long)200;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;
# 设置第三个ROI区域位置大小
camera.f.Regionselector.Value  = "Region2";
camera.f.OffsetX.Value = (long)300;
camera.f.OffsetY.Value = (long)300;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;
# 设置第四个ROI区域位置大小
camera.f.Regionselector.Value  = "Region3";
camera.f.OffsetX.Value = (long)500;
camera.f.OffsetY.Value = (long)500;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;# 设置第五个ROI区域位置大小
camera.f.Regionselector.Value  = "Region4";
camera.f.OffsetX.Value = (long)600;
camera.f.OffsetY.Value = (long)600;
camera.f.Width.Value = (long)320;
camera.f.Height.Value = (long)3200;# 开启相机触发采集功能
camera.f.SequencerMode.ValueString  =  "On";
camera.f.AcquisitionStart.Execute();  # 执行软件触发器以获取图像
camera.f.TriggerSoftware.Execute(); 
NeoAPI.Image img = camera.GetImage();# 构造线程处理图像中每个面的图像
if (camera.IsConnected)
{# 线程1检测产品第一面ProcessImageStatus1 = true;ProcessImageThread1 = new Thread((ThreadStart)delegate() { ProcessImageThread1(); });ProcessImageStatus1 .Start();# 线程2检测产品第二面ProcessImageStatus2 = true;ProcessImageThread2 = new Thread((ThreadStart)delegate() { ProcessImageThread2(); });ProcessImageStatus2 .Start();# 线程3检测产品第三面ProcessImageStatus3 = true;ProcessImageThread3 = new Thread((ThreadStart)delegate() { ProcessImageThread3(); });ProcessImageStatus3 .Start();# 线程4检测产品第四面ProcessImageStatus4 = true;ProcessImageThread4 = new Thread((ThreadStart)delegate() { ProcessImageThread4(); });ProcessImageStatus4 .Start();# 线程5检测产品第五面ProcessImageStatus5 = true;ProcessImageThread5 = new Thread((ThreadStart)delegate() { ProcessImageThread5(); });ProcessImageStatus5 .Start();}

工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业优势

工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面,在提升检测效率、降低成本、提高检测精度等方面具有显著的行业优势,以下是具体介绍:

  1. 提高检测效率
    • 快速多面成像:传统检测方式需多次调整相机位置或产品姿态才能完成多面检测,而利用棱镜的反射原理,工业相机可一次采集获取产品多个面的图像,大幅减少了检测时间,在生产线上能显著提升检测速度,提高生产效率。
    • 适应高速生产线:在汽车零部件、电子元器件等高速生产线上,产品流动速度快,使用棱镜的工业相机可在极短时间内完成多面图像采集,满足高速生产过程中的实时检测需求,不会因检测速度慢而影响生产节拍。
  2. 降低检测成本
    • 减少设备投入:无需为检测产品的不同面配备多个相机及复杂的机械调整装置,一台配备棱镜的工业相机就能实现多面检测,降低了设备采购成本。
    • 降低人力成本:一次采集完成多面检测,操作更简便,减少了因操作多台设备或频繁调整设备而需要的人力,降低了人力成本。
    • 节省空间:相比多个相机组成的检测系统,使用棱镜的工业相机系统结构更紧凑,占用空间小,便于安装在生产线上空间有限的位置,节省了生产空间。
  3. 提高检测精度
    • 统一坐标系统:在一次图像采集中完成多面检测,所有面的图像都在同一相机坐标系下,避免了多个相机检测时因坐标转换带来的误差,提高了多面之间相对位置和尺寸的检测精度。
    • 减少外部干扰:减少了相机切换和位置调整过程中可能出现的振动、光线变化等外部因素对检测结果的影响,使检测结果更稳定、准确。
  4. 增强检测可靠性
    • 全面检测:能够同时检测产品的多个面,不会遗漏产品表面的缺陷,对于一些存在隐蔽面缺陷的产品,如内部结构复杂的铸件、具有多个焊接面的电子组件等,可更全面地检测出潜在问题,提高产品质量。
    • 实时对比分析:可同时获取多个面的图像,便于系统对不同面的图像进行实时对比分析,更准确地判断产品是否存在缺陷及缺陷的性质和位置,提高检测的可靠性和准确性。
  5. 提升适应性和灵活性
    • 适应不同产品类型:无论是形状规则的长方体、圆柱体产品,还是形状复杂的异形产品,都可通过合理设计棱镜的角度和形状,实现对产品多个面的有效检测,具有很强的通用性和适应性。
    • 易于系统集成:在现有的工业自动化检测系统中,只需将配备棱镜的工业相机接入系统,进行简单的参数设置和校准,就能实现多面检测功能的集成,便于与其他检测设备和生产设备协同工作。
  6. 数据完整性与追溯性
    • 完整数据记录:一次采集获取多个面的图像,形成更完整的产品图像数据集合,为产品质量分析和追溯提供了更全面、详细的数据支持。
    • 便于质量追溯:在产品出现质量问题时,可通过完整的多面图像数据,更准确地分析问题产生的原因和环节,有助于追溯产品生产过程中的工艺问题和质量隐患,为质量改进提供有力依据。

工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面的行业应用

Baumer工业相机使用棱镜一次图像采集同时检测产品的5个面甚至多个面,在诸多行业都有重要应用,以下是一些具体的例子:

电子制造行业

  • 手机及零部件检测:在手机生产中,对手机外壳、电路板等零部件进行检测。可通过棱镜让相机一次采集到手机外壳的多个面,检查外壳是否有划痕、裂纹、缺料等外观缺陷,以及按键孔、充电孔等位置的精度。对于电路板,能同时检测其正面的电子元件焊接情况、线路是否短路,以及侧面的板厚是否符合标准等。
  • 半导体芯片检测:在芯片制造过程中,检测芯片的表面缺陷、引脚形状和位置等。利用棱镜可同时观察芯片的顶面、侧面以及引脚的多个面,快速发现芯片表面的划痕、崩边,以及引脚是否弯曲、变形、短路等问题,确保芯片质量。

汽车制造行业

  • 汽车零部件检测:对汽车发动机缸体、轮毂等零部件进行检测。通过棱镜使相机一次采集到缸体的多个面,检测缸体内部的铸造缺陷、表面粗糙度,以及安装孔的位置精度等。对于轮毂,可同时检测其外表面的涂装质量、是否有裂纹,以及轮毂边缘和内侧的尺寸精度等。
  • 汽车内饰件检测:检测汽车仪表盘、座椅框架等内饰件。能同时采集到仪表盘的正面显示区域、侧面的安装结构,检查是否有显示异常、外壳变形等问题。对于座椅框架,可检测其各个面的焊接质量、是否有脱焊、漏焊等情况。

机械加工行业

  • 精密机械零件检测:对齿轮、轴承等精密机械零件进行检测。使用棱镜可让相机同时获取齿轮的齿面、端面以及外圆面,检测齿形误差、齿面磨损、端面跳动等参数。对于轴承,能同时检测内圈、外圈的表面质量、滚道的精度,以及保持架的形状和位置等。
  • 模具检测:在模具制造和使用过程中,检测模具的型腔、型芯等部位。通过棱镜一次采集到模具的多个面,检查型腔表面是否有磨损、拉伤,型芯的尺寸是否准确,以及模具的分型面是否贴合紧密等。

食品饮料行业

  • 食品包装检测:对食品包装盒、瓶罐等包装进行检测。可以同时检测包装盒的四个侧面和顶面,查看是否有印刷错误、颜色偏差、表面破损等问题。对于瓶罐,能检测其瓶身是否有裂纹、划痕,瓶口的平整度和密封性能等。
  • 食品外形检测:对饼干、糖果等具有规则形状的食品进行外形检测。利用棱镜一次采集到食品的多个面,检查饼干是否缺角、破碎,糖果的形状是否完整、表面是否光滑等。

制药行业

  • 药品包装检测:对药盒、药瓶等包装进行检测。可同时检测药盒的多个面,查看是否有文字印刷错误、图案模糊、折叠不规范等问题。对于药瓶,能检测瓶身是否有裂纹、刻度是否清晰,以及瓶盖是否拧紧等。
  • 药品片剂、胶囊检测:检测药片、胶囊的外观质量。通过棱镜配合光线,可对药片或胶囊进行360°全方位的图像采集,检查药片是否有裂片、缺角、表面斑点,胶囊是否有破损、漏粉等问题。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core 如何使用 C# 从端点发出 GET 请求

使用 C#,从 REST API 端点获取 JSON;如何从 REST API 接收 JSON 数据。 本文需要 ASP .NET Core,并兼容 .NET Core 3.1、.NET 6和.NET 8。 要将数据发布到端点,请参阅本文。 使用 . 从端点发布 GET 数据非常容易HttpClient&…

基于微信小程序的博物馆预约系统的设计与实现

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

Mybatis快速入门与核心知识总结

Mybatis 1. 实体类(Entity Class)1.1 实体类的定义1.2 简化编写1.2.1 Data1.2.2 AllArgsConstructor1.2.3 NoArgsConstructor 2. 创建 Mapper 接口2.1 Param2.2 #{} 占位符2.3 SQL 预编译 3. 配置 MyBatis XML 映射文件(可选)3.1 …

ios通过xib创建控件

之前写过ios动态创建控件及添加事件,纯手工代码写控件,虽然比较灵活,但是就是代码量比较多。这次我们通过xib来创建app下载列表项 AppView.xib。一个imageview,一个label,一个button构成 1.创建AppView.xib 2.再创建xib对应的mode&#xff0…

MybatisPlus常用增删改查

记录下MybatisPlus的简单的增删改查 接口概述 Service和Mapper区别 Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。 Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL…

deepseek+kimi一键生成PPT

1、deepseek生成大纲内容 访问deepseek官方网站:https://www.deepseek.com/ 将你想要编写的PPT内容输入到对话框,点击【蓝色】发送按钮,让deepseek生成内容大纲,并以markdown形式输出。 等待deepseek生成内容完毕后&#xff0c…

1312:【例3.4】昆虫繁殖

1312:【例3.4】昆虫繁殖 时间限制: 1000 ms 内存限制: 65536 KB 提交数:60386 通过数: 29787 【题目描述】 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过xx个月产yy对卵,每对卵要过两个月长成成虫…

【牛客】动态规划专题一:斐波那契数列

文章目录 DP1 斐波那契数列法1&#xff1a;递归法2&#xff1a;动态规划法3&#xff1a;优化空间复杂度 2.分割连接字符串3. 给定一个字符串s和一组单词dict&#xff0c;在s中添加空格将s变成一个句子 DP1 斐波那契数列 法1&#xff1a;递归 // 递归 #include <iostream>…

RDK新一代模型转换可视化工具!!!

作者&#xff1a;SkyXZ CSDN&#xff1a;SkyXZ&#xff5e;-CSDN博客 博客园&#xff1a;SkyXZ - 博客园 之前在使用的RDK X3的时候&#xff0c;吴诺老师wunuo发布了新一代量化转换工具链使用教程&#xff0c;这个工具真的非常的方便&#xff0c;能非常快速的完成X3上模型的量化…

2025.2.8——一、[护网杯 2018]easy_tornado tornado模板注入

题目来源&#xff1a;BUUCTF [护网杯 2018]easy_tornado 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;分析已知信息 step 2&#xff1a;目标——找到cookie_secret step 3&#xff1a;构造payload 三、小结 一、打开靶机&#xff0c;整理信…

2. UVM的基本概念和架构

文章目录 前言1. UVM的基本概念1.1 UVM的核心组件1.2 UVM的基本架构1.3 UVM的工作流程 2. UVM的架构2.1 UVM的层次结构2.2 UVM的组件交互 3. 总结 前言 首先&#xff0c;得确定UVM的基本概念和架构包含哪些关键部分。我回忆起UVM的核心组件&#xff0c;比如uvm_component、uvm…

VMware Workstation创建虚拟机

目录 创建新的虚拟机 虚拟机快照功能 虚拟机添加空间 其他注意事项 创建新的虚拟机 打开VMware Workstation&#xff1a;启动软件后&#xff0c;点击“创建新的虚拟机”。 选择安装方式&#xff1a; 典型安装&#xff1a;适合大多数用户&#xff0c;会自动完成大部分配置…

食物过敏——来龙去脉

​ 春节假期期间&#xff0c;亲朋好友欢聚一堂&#xff0c;美食佳肴各种狂炫&#xff0c;然而当传统节日遭遇现代饮食文化&#xff0c;频繁的高脂高蛋白摄入、不规律的进食节奏&#xff0c;正不断冲击着肠道屏障的免疫调控网络&#xff0c;部分人群可能正被食物过敏困扰。 ​ 食…

解决VsCode的 Vetur 插件has no default export Vetur问题

文章目录 前言1.问题2. 原因3. 解决其他 前言 提示&#xff1a; 1.问题 Cannot find module ‘ant-design-vue’. Did you mean to set the ‘moduleResolution’ option to ‘node’, or to add aliases to the ‘paths’ option? Module ‘“/xxx/xxx/xxx/xxx/xxx/src/vie…

不小心删除服务[null]后,git bash出现错误

不小心删除服务[null]后&#xff0c;git bash出现错误&#xff0c;如何解决&#xff1f; 错误描述&#xff1a;打开 git bash、msys2都会出现错误「bash: /dev/null: No such device or address」 问题定位&#xff1a; 1.使用搜索引擎搜索「bash: /dev/null: No such device o…

第三届通信网络与机器学习国际学术会议(CNML 2025)

在线投稿&#xff1a; 学术会议-学术交流征稿-学术会议在线-艾思科蓝 通信网络机器学习 通信理论 通信工程 计算机网络和数据通信 信息分析和基础设施 通信建模理论与实践 无线传感器和通信网络 云计算与物联网 网络和数据安全 光电子学和光通信 无线/移动通信和技术 智能通信…

深入Linux系列之进程地址空间

深入Linux系列之进程地址空间 1.引入 那么在之前的学习中&#xff0c;我们知道我们创建一个子进程的话&#xff0c;我们可以在代码层面调用fork函数来创建我们的子进程&#xff0c;那么fork函数的返回值根据我们当前所处进程的上下文是返回不同的值&#xff0c;它在父进程中返…

JAVA-枚举的使用

目录 一、枚举的意义 二、enum类的使用 1.switch 2.常用方法 2.1 values() 和 ordinal() 2.1.1 Enum基本介绍 2.2 valueOf() 2.3 compareTo() 三、枚举的优点和缺点 四、枚举安全在什么地方 一、枚举的意义 public static final int RED 1; public static final int…

华中科技大学软件学院专硕怎样?

华中科技大学软件工程以顶尖的学科实力、扎实的产研融合和广阔的就业前景&#xff0c;持续吸引优质生源。尽管竞争激烈&#xff0c;但通过科学的备考规划与持续努力&#xff0c;完全可能实现名校梦想。建议26届考生锚定目标、拆分任务、善用华科开源社区资源&#xff08;如HUST…

【EXCEL】【VBA】处理GI Log获得Surf格式的CONTOUR DATA

【EXCEL】【VBA】处理GI Log获得Surf格式的CONTOUR DATA data source1: BH coordination tabledata source2:BH layer tableprocess 1:Collect BH List To Layer Tableprocess 2:match Reduced Level from "Layer"+"BH"data source1: BH coordination…