在工业检测中,黑白相机虽应用广泛,但在应对颜色差异检测时往往力不从心。彩色照相机凭借其对色彩信息的精准捕捉,成为复杂场景下的理想选择,而预处理技术则进一步释放了其性能潜力。

一、彩色照相机的效果

检查盖子上的金色标签

可以看到,当工件表面为有光泽的曲面时,使用黑白照相机并不能得到类似人眼所观察到的图像处理效果。 从上面的实物图像可以看到,造成这种现象的原因是标签的亮度不均匀。

如果使用彩色照相机,就可以如右图一样,只提取标签的金色部分。

这是因为,与采用亮度作为处理标准的黑白照相机不同,彩色照相机使用色相(色调)数据进行图像处理。

二、彩色照相机是什么?

对于使用图像传感器的彩色照相机,其中一种是俗称  单板式   CCD。为了得到彩色 图像,需要三原色(RGB)信息。CCD  的每一个像素都贴有一种三原色( RG  或   B  的滤镜。这样,每个像素就可以将 RG  B  256 级浓淡数据传送给控制器,控制器利用这些数据进行彩色图像处理。

【关于比色体系】

一种用数值表示颜色的体系,通常用含有三个轴的三维图表加以表示。

比色系统有许多种类,其中采用色调(Hue)、饱和度(Saturation)及亮 度(Value)等 3 要素的HSV模式接近人眼的观察效果,因此适于图像处理。

三、彩色二值化处理

彩色相机的核心优势在于其能捕捉 RGB 三原色的 256 级浓淡信息,形成 1677 万级颜色数据,远超黑白相机的 256 级灰度范围。单板式 CCD 的每个像素都覆盖 RGB 滤镜,能分别感应三原色光,再通过 HSV 色彩模式(色调、饱和度、亮度)处理,更贴近人眼的色彩感知,适合检测金色标签、彩色导线等场景。

彩色二值化处理是彩色相机的重要应用技术,能从千万级颜色中精准提取目标颜色范围。例如,检测线圈中绿色导线的断线时,通过提取绿色并二值化,可清晰显示断线位置;在混合螺丝中计数金色螺丝,彩色二值化能有效区分金色与银色,而这是黑白相机难以实现的。

四、彩色浓淡处理

彩色照相机的信息量是黑白照相机的 8 万倍。如果对于这些信息都进行处理,则需要大量的时间。而用于高速生产线的图像 传感器需要以百分之一秒的时间单位进行图像处理。另外,在一些不适于采用二值化处理的应用中(例如形状搜索、表面损伤 检查等),由于信息量过大,会形成干扰,从而使特征点变得不清晰。为了解决这些问题,开发了一种新的预处理功能,即“ 色浓淡处理 

在检测上图的左图所示的浅色图案时,如使用黑白浓淡处理,则只能得到非常淡的图像。但是采用基于颜色数据的彩色浓淡处理后,可以看到,背景成为黑色,淡色部位可以清晰地转换为灰色的图案。在进行标记形状差异或错位检查时,两种处理在效果上的差异一目了然。

五、通过照相机增益调整来优化图像

增益调整是优化图像的方法之一。对于彩色照相机来说,增益调整可以分别调整 RGB 三种颜色,因此可以使红色变得更 红、蓝色变得更蓝、而绿色则变得更绿。在区分颜色时,这种调整可以起到良好的效果。

但海量颜色数据会增加处理时间,针对这一问题,彩色浓淡处理技术应运而生。它将彩色图像转换为以目标颜色为最高亮度的 256 级灰度图,在保留颜色特征的同时,大幅减少数据量,满足高速生产线的检测需求。例如,检测浅色图案时,彩色浓淡处理能让浅色部位与黑色背景形成鲜明对比,便于形状差异识别。

各种图像传感器根据其使用目的的不同,会具有不同的预处理功能。利用这些功能,可以将图像转换成适宜的图像。 这些功能不仅适用于黑白照相机,同时还适用于经彩色二值化处理、彩色浓淡处理后的彩色照相机。

下面将介绍其中几种预处理功能。

在实际应用中,彩色相机与预处理技术的结合,能解决传统黑白相机无法应对的复杂检测任务。例如,在高反光曲面工件上检测金色标签,彩色相机可忽略亮度干扰,仅通过色调识别标签,大幅提升检测稳定性。

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

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

相关文章

使用 BERT 的 NSP 实现语义感知切片 —— 提升 RAG 系统的检索质量

在构建 Retrieval-Augmented Generation(RAG)系统时,文档的切片方式至关重要。我们需要将长文本切分成合适的段落(chunks),然后存入向量数据库进行召回。如果切得太粗,会丢失上下文细节&#xf…

使用STM32CubeMX生成的STM32CubeIDE工程在更改工程名后编译失败问题解决

0 问题描述 使用STM32CubeMX生成STM32CubeIDE工程,然后使用STM32CubeIDE改名后编译提示如下错误: 1 问题原因及解决办法 1.1 问题原因 原因在于更名后STM32CubeIDE没有自动更新引用关系,这是因为我们使用STM32CubeMX生成代码时没有勾选在根目录下生成: 取消勾选在根目…

8月3日星期日今日早报简报微语报早读

8月3日星期日,农历闰六月初十,早报#微语早读。1、广西防城港:奔驰女司机身份已查清,结果将统一对外发布;2、陈艺文、陈佳包揽游泳世锦赛女子跳水三米板金银牌;3、九省份保险业已赔付暴雨灾害损失5.2亿元&am…

wxPython 实践(六)对话框

wxPython 实践(一)概述 wxPython 实践(二)基础控件 wxPython 实践(三)页面布局 wxPython 实践(四)事件响应 wxPython 实践(五)高级控件 wxPython 实践&#x…

MATLAB科研数据可视化技术

互联网的飞速发展伴随着海量信息的产生,而海量信息的背后对应的则是海量数据。如何从这些海量数据中获取有价值的信息来供人们学习和工作使用,这就不得不用到大数据挖掘和分析技术。数据可视化分析作为大数据技术的核心一环,其重要性不言而喻…

文明存续的时间博弈:论地球资源枯竭临界期的技术突围与行动紧迫性

摘要当地球资源消耗以指数级速度逼近生态承载力极限,人类文明正面临“存续还是消亡”的终极抉择。本文基于地球资源枯竭的实证数据与技术突破的可行性分析,揭示文明存续的时间窗口已进入不可逆临界期(2040-2070年),论证…

Elasticsearch 8.19.0 和 9.1.0 中 LogsDB 和 TSDS 的性能与存储改进

作者:来自 Elastic Martijn Van Groningen 探索 TSDS 和 LogsDB 的最新增强功能,包括优化 I/O、提升合并性能等。 Elasticsearch 带来了许多新功能,帮助你为你的使用场景构建最佳搜索解决方案。通过我们的示例笔记本深入学习,开始…

cs336之注意pytorch的tensor在哪里?(assert的使用)

问题 记住:无论何时你在pytorch中有一个张量tensor,你应该始终问一个问题:它当前位于哪里? 注意它在CPU还是在GPU中。要判断它在哪里,可以使用python的assert断言语句。 assert断言 在 Python 中,assert 是…

Mysql 分区表

分区表是将一张表分成多张独立子表,每个子表是一个区,目的是提高查询效率。 从 server 层来看,只有一张表。但是从引擎层来看,是多张表,对应多个.idb文件。引擎层访问数据只访问特定分区表,也只对特定分区表…

Makefile 入门与实践指南

Makefile 是用于 make 工具的配置文件,它定义了如何编译和链接你的项目,让构建过程自动化。一、核心概念 make 的核心思想是 “目标”(Target) 和 “依赖”(Dependencies): 目标 (Target)&#…

分布式微服务--Nacos作为配置中心(补)关于bosststrap.yml与@RefreshScope

一、关于bosststrap.yml✅ bootstrap.yml 和 application.yml 的区别对比项bootstrap.ymlapplication.yml加载时机优先于 application.yml 加载(启动早期)程序初始化完成后加载主要用途设置应用的外部配置源、注册中心信息等设置应用内部配置&#xff0c…

[Qt]QString 与Sqlite3 字符串互动[汉字不乱码]

环境:Qt C(msvc c)1.将与数据库交互的代码文件编码转换为utf-8-bom编码,(可使用notepad 进行转换)2.在代码文件头文件中加上下面代码。//vs2010 版本是 1600 #if defined(_MSC_VER) && (_MSC_VER &…

SpringBoot启动项目详解

SpringBoot 的启动过程是一个整合 Spring 核心容器、自动配置、嵌入式服务器等功能的复杂流程,核心目标是 “简化配置、快速启动”。下面从入口类开始,逐步拆解其详细启动步骤:一、启动入口:SpringBootApplication与main方法Sprin…

PCB 控深槽如何破解 5G 基站 120℃高热魔咒?

5G 基站在高频通信下的功耗较 4G 基站提升 3-4 倍,射频模块、电源单元等核心部件的工作温度常突破 120℃,远超设备安全阈值(≤85℃),形成制约通信稳定性的 “高热魔咒”。印制线路板(PCB)作为热…

NEXT.js 打包部署到服务器

在网上查了一下,记录一下1.首先执行打包命令,我这个项目是用的pnpm,可以根据项目需求使用 npm 或者别的pnpm run build2.打包完成后会有一个 .next 的文件夹,需要把下图的这些文件放到服务器。服务器需要有node环境之后就需要执行…

【AI分析】uv库自动安装脚本uv-installer-0.8.3.ps1分析

目录uv 安装脚本完整分析报告1. 脚本概述2. 参数解析3. 环境变量控制4. 核心函数详解a. Install-Binary(主控函数)b. Get-TargetTriple(架构检测)c. Download(下载处理)d. Invoke-Installer(安装…

etcd 的安装与使用

介绍 Etcd 是一个 golang 编写的分布式、高可用的一致性键值存储系统,用于配置共享和服 务发现等。它使用 Raft 一致性算法来保持集群数据的一致性,且客户端通过长连接 watch 功能,能够及时收到数据变化通知,相较于 Zookeeper 框…

conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正

详细问题 PS C:\Users\wh109> conda init powershell conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。 所在位置 行:1 字符: 1conda init pow…

HQChart实战教程58:K线主图仿TradingView实现

本文将详细介绍如何使用HQChart实现类似TradingView风格的K线主图,包含完整的代码实现和详细注释,适合金融图表开发者和量化交易爱好者阅读。 一、TradingView风格特点分析 在开始实现前,我们先分析TradingView的K线主图核心特点: 简洁现代的UI设计:深色背景、清晰的网格…

GitPython08-源码解读

GitPython08-源码解读 1-核心知识 1)gitPython核心代码很多都是对git命令返回的结果进行解析,在此补充git命令的返回内容2)git ls-tree -> 查看某个提交或分支所对应的目录树3)源码中Tree对应的业务逻辑 -> 获取git ls-tre…