当前位置: 首页 > article >正文

03Halcon图像色彩空间转换学习报告

Halcon图像色彩空间转换学习报告【摘要】本文系统介绍了Halcon中常用的图像色彩空间RGB、HSV、HLS、YUV、Lab等的原理、转换方法及在机器视觉领域的实际应用。通过完整的代码示例帮助工程师掌握色彩空间转换的核心技术提升图像处理效果。一、图像色彩空间概述色彩空间Color Space是描述和组织颜色的数学模型。在机器视觉领域不同的色彩空间适用于不同的处理任务。理解各种色彩空间的特点和转换方法是进行高效图像处理的基础。1.1 为什么需要色彩空间转换光照不变性某些色彩空间对光照变化不敏感适合户外检测特征分离将颜色信息与亮度信息分离便于针对性处理人眼感知某些空间更符合人眼对颜色的感知方式压缩传输某些空间更适合图像压缩和传输二、Halcon常用色彩空间详解2.1 RGB色彩空间RGBRed, Green, Blue是最基础的加色模型由红、绿、蓝三个通道组成。在Halcon中RGB图像通常以3通道byte格式存储。特点与应用特点说明优点直观易懂与硬件采集直接对应适合显示输出缺点各通道高度相关对光照敏感不适合颜色分割适用场景图像采集、显示输出、简单的颜色分析Halcon代码示例RGB通道分离与合并*读取RGB图像read_image (Image, color_image.jpg)*将RGB图像分解为三个单通道图像decompose3 (Image, ImageR, ImageG, ImageB)*分别显示三个通道dev_display (ImageR) *红色通道dev_display (ImageG) *绿色通道dev_display (ImageB) *蓝色通道*修改绿色通道后重新合并emphasize (ImageG, ImageGEnhanced, 7, 7, 1.5)compose3 (ImageR, ImageGEnhanced, ImageB, ImageEnhanced)*获取图像通道数信息count_channels (Image, Channels)disp_message (WindowHandle, 通道数: Channels, window, 12, 12, black, false)2.2 HSV色彩空间HSVHue, Saturation, Value即色调、饱和度、明度。这是一种更符合人眼感知的色彩空间将颜色信息H与亮度信息V分离是机器视觉中最常用的色彩空间之一。特点与应用分量说明H (Hue)色调0-360度表示颜色类型红、黄、绿等S (Saturation)饱和度0-255表示颜色纯度灰度vs彩色V (Value)明度0-255表示亮度黑vs白适用场景颜色分割、基于颜色的物体识别、颜色检测Halcon代码示例RGB转HSV及颜色分割* RGB转HSV色彩空间decompose3 (Image, ImageR, ImageG, ImageB)trans_from_rgb (ImageR, ImageG, ImageB, ImageH, ImageS, ImageV, hsv)*基于色调H进行红色物体分割*红色在HSV中对应H: 0-10或170-180threshold (ImageH, RegionRed1, 0, 10)threshold (ImageH, RegionRed2, 170, 180)union2 (RegionRed1, RegionRed2, RegionRedHue)*结合饱和度S筛选去除灰色干扰threshold (ImageS, RegionSaturation, 80, 255)intersection (RegionRedHue, RegionSaturation, RegionRed)*结合明度V筛选去除黑色阴影threshold (ImageV, RegionValue, 50, 255)intersection (RegionRed, RegionValue, RegionFinal)*形态学处理connection (RegionFinal, ConnectedRegions)select_shape (ConnectedRegions, SelectedRegions, area, and, 100, 99999)dev_display (Image)dev_display (SelectedRegions)2.3 HLS色彩空间HLSHue, Lightness, Saturation与HSV类似但使用亮度Lightness替代明度Value。在某些光照条件下HLS的颜色分离效果更好。Halcon代码示例* RGB转HLS色彩空间decompose3 (Image, ImageR, ImageG, ImageB)trans_from_rgb (ImageR, ImageG, ImageB, ImageH, ImageL, ImageS, hls)* HLS空间下的颜色分析*在HLS中亮度L与颜色H、S分离更彻底*基于亮度L进行图像分割如提取亮部区域threshold (ImageL, RegionBright, 180, 255)threshold (ImageL, RegionDark, 0, 80)* HLS转回RGBtrans_to_rgb (ImageH, ImageL, ImageS, ImageR2, ImageG2, ImageB2, hls)compose3 (ImageR2, ImageG2, ImageB2, ImageHLSConverted)2.4 YUV/YCrCb色彩空间YUVYCrCb是电视和视频领域广泛使用的色彩空间。Y表示亮度LumaU/VCr/Cb表示色度Chroma。这种分离方式非常适合图像压缩。特点与应用分量说明Y (Luma)亮度信号包含图像的明暗信息U/Cb蓝色色度表示蓝色与亮度的差异V/Cr红色色度表示红色与亮度的差异适用场景视频处理、JPEG压缩、肤色检测、光照补偿Halcon代码示例* RGB转YCrCbYUV色彩空间decompose3 (Image, ImageR, ImageG, ImageB)trans_from_rgb (ImageR, ImageG, ImageB, ImageY, ImageCr, ImageCb, yuv)* Y通道就是灰度图像可直接用于灰度处理*相当于rgb1_to_gray的结果*肤色检测基于CrCb*肤色在YCrCb空间的CrCb分布较为集中threshold (ImageCr, RegionCr, 133, 173)threshold (ImageCb, RegionCb, 77, 127)intersection (RegionCr, RegionCb, RegionSkin)*结合亮度Y去除阴影区域threshold (ImageY, RegionY, 80, 235)intersection (RegionSkin, RegionY, RegionSkinFinal)*显示肤色检测结果connection (RegionSkinFinal, SkinRegions)select_shape (SkinRegions, SkinObjects, area, and, 500, 99999)dev_display (Image)dev_set_color (red)dev_display (SkinObjects)2.5 CIE Lab色彩空间CIE LabL*a*b*是国际标准色彩空间设计目标是与人眼感知一致。L*表示明度a*表示绿-红轴b*表示蓝-黄轴。Lab空间是设备无关的适合精确的颜色测量。特点与应用分量说明L*明度0-100表示从黑到白a*绿-红轴负值为绿正值为红b*蓝-黄轴负值为蓝正值为黄适用场景颜色测量、色差计算、印刷行业、精确颜色匹配Halcon代码示例* RGB转CIE Lab色彩空间decompose3 (Image, ImageR, ImageG, ImageB)trans_from_rgb (ImageR, ImageG, ImageB, ImageL, ImageA, ImageB, cielab)* Lab空间的颜色分析* a*通道负值为绿色正值为红色* b*通道负值为蓝色正值为黄色*提取红色区域a* 0threshold (ImageA, RegionA, 20, 127)*提取黄色区域b* 0threshold (ImageB, RegionB, 20, 127)*橙色区域红黄intersection (RegionA, RegionB, RegionOrange)* Lab颜色距离计算*计算两个颜色的欧氏距离* Delta E sqrt((L1-L2)^2 (a1-a2)^2 (b1-b2)^2)三、色彩空间对比总结色彩空间分离特性主要优势典型应用RGB无分离硬件友好直观图像采集、显示HSVH/S/V分离颜色与亮度分离颜色分割、物体识别HLSH/L/S分离亮度分离更彻底光照变化场景YUVY/U/V分离压缩效率高视频、肤色检测LabL/a/b分离感知均匀设备无关颜色测量、色差四、综合应用实例4.1 多色彩空间联合颜色检测*多色彩空间联合检测-提高颜色识别鲁棒性read_image (Image, colored_objects.jpg)decompose3 (Image, R, G, B)*转换到多个色彩空间trans_from_rgb (R, G, B, H, S, V, hsv)trans_from_rgb (R, G, B, Y, Cr, Cb, yuv)*方法1HSV空间检测蓝色threshold (H, BlueH, 100, 140) *蓝色色调范围threshold (S, BlueS, 80, 255) *高饱和度intersection (BlueH, BlueS, BlueHSV)*方法2YCrCb空间验证蓝色*蓝色在Cb通道有较高值threshold (Cb, BlueCb, 140, 255)intersection (BlueHSV, BlueCb, BlueFinal)*形态学优化opening_circle (BlueFinal, BlueOpened, 3.5)closing_circle (BlueOpened, BlueClosed, 5.5)connection (BlueClosed, BlueRegions)select_shape (BlueRegions, BlueObjects, area, and, 200, 99999)*显示结果dev_display (Image)dev_set_color (blue)dev_display (BlueObjects)disp_message (WindowHandle, 检测到 |BlueObjects| 个蓝色物体, window, 12, 12, blue, false)4.2 光照自适应颜色检测*光照自适应颜色检测-使用HLS空间read_image (Image, uneven_light.jpg)decompose3 (Image, R, G, B)trans_from_rgb (R, G, B, H, L, S, hls)*分析光照分布min_max_gray (L, L, 0, MinL, MaxL, RangeL)disp_message (WindowHandle, 亮度范围: MinL - MaxL, window, 12, 12, black, false)*动态阈值-基于局部亮度*使用色调H和饱和度S忽略亮度Lthreshold (H, RegionH, 30, 70) *绿色色调threshold (S, RegionS, 60, 255) *足够饱和intersection (RegionH, RegionS, RegionColor)*使用亮度信息进行验证排除过暗区域threshold (L, RegionL, 40, 255) *排除阴影intersection (RegionColor, RegionL, RegionGreen)*结果处理connection (RegionGreen, GreenRegions)select_shape_std (GreenRegions, SelectedRegions, max_area, 70)dev_display (Image)dev_set_color (green)dev_display (SelectedRegions)4.3 颜色直方图分析与匹配*颜色直方图分析read_image (Image, product.jpg)decompose3 (Image, R, G, B)*转换到HSVtrans_from_rgb (R, G, B, H, S, V, hsv)*计算色调直方图gray_histo (H, H, 360, HistoH)histo_to_thresh (HistoH, 10, MinThresh, MaxThresh)*查找主要颜色峰值*分析直方图找到主要颜色区间disp_message (WindowHandle, 主要色调区间数量: |MinThresh|, window, 12, 12, black, false)*基于直方图结果进行多阈值分割for Index : 0 to |MinThresh| - 1 by 1threshold (H, RegionColor, MinThresh[Index], MaxThresh[Index])connection (RegionColor, Connected)select_shape (Connected, Largest, area, and, 100, 99999)*处理每个颜色区域...endfor五、最佳实践与注意事项5.1 色彩空间选择建议颜色分割优先选HSVH通道对光照变化相对不敏感适合大多数颜色检测任务肤色检测选YCrCb肤色在CrCb平面的分布较为集中检测效果好精确测量选LabLab是感知均匀空间适合颜色差异计算光照变化大选HLSL通道与颜色信息分离更彻底5.2 常见问题与解决方案问题解决方案颜色边界模糊使用形态学操作opening/closing优化分割结果光照不均匀使用HLS/HSV空间结合V/L通道进行自适应阈值相似颜色干扰多色彩空间联合验证增加S饱和度约束阴影影响在V/L通道设置下限阈值排除过暗区域六、总结本文系统介绍了Halcon中常用的图像色彩空间及其转换方法。掌握这些技术对于机器视觉工程师至关重要RGB是图像采集和显示的基础但直接处理效果有限HSV/HLS将颜色与亮度分离是颜色分割的首选YUV适合视频处理和肤色检测Lab适合精确的颜色测量和色差计算在实际项目中建议根据具体应用场景选择合适的色彩空间必要时可结合多个色彩空间进行联合分析以提高检测的准确性和鲁棒性。

相关文章:

03Halcon图像色彩空间转换学习报告

Halcon图像色彩空间转换学习报告【摘要】本文系统介绍了Halcon中常用的图像色彩空间(RGB、HSV、HLS、YUV、Lab等)的原理、转换方法及在机器视觉领域的实际应用。通过完整的代码示例,帮助工程师掌握色彩空间转换的核心技术,提升图像…...

跨越系统鸿沟:DDrawCompat如何让经典软件在现代Windows系统重获新生

跨越系统鸿沟:DDrawCompat如何让经典软件在现代Windows系统重获新生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirr…...

某软件ollvm混淆登录参数分析

这次案例使用的是最新某马拉雅,直接豌豆荚即可抓包​ 首先就是进行抓包了,下面是抓到的数据包123456789101112POST /mobile/login/pwd/v3 HTTP/2host: passportws.ximalaya.comcookie: 1&_deviceandroid&386501be-0e5c-3773-8b4b-d2f40c257a9a&a…...

解锁Umi-OCR多语言识别潜能:5个专业配置技巧让准确率提升30%

解锁Umi-OCR多语言识别潜能:5个专业配置技巧让准确率提升30% 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.co…...

PTA 树与二叉树 2 根据先序+中序遍历序列构造二叉树

作者 张鏖烽单位 湖南工程学院计算机与通信学院从键盘输入一个二叉树的先序遍历序列和中序遍历序列,编程实现下列函数:(1)CreateBT_PI(pre,in,n):根据先序遍历序列*pre和中序遍历*in构造二叉链树;(2&#x…...

直播分发新范式:obs-multi-rtmp的资源池化技术与全场景应用

直播分发新范式:obs-multi-rtmp的资源池化技术与全场景应用 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 一、技术内核:从资源竞争到协同的架构革新 1.1 核心…...

Arbitrary scale atmospheric downscaling with mixture of implicit neural networks trained on fixed

Arbitrary-scale atmospheric downscaling with mixture of implicit neural networks trained on fixed-scale data摘要大气数据降采样是推进气候和天气研究的关键,它解决了对高分辨率区域洞察日益增长的需求,同时提高了天气预报和气候建模等关键应用的…...

Markdown浏览器插件:让文档预览效率提升300%的零配置工具

Markdown浏览器插件:让文档预览效率提升300%的零配置工具 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 你是否曾遇到过这样的困境:下载的本地Markdown文…...

百度网盘秒传脚本:文件传输效率工具的深度解析与应用指南

百度网盘秒传脚本:文件传输效率工具的深度解析与应用指南 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 1.溯源文件分享痛点:传统模…...

突破小爱音箱音乐限制:XiaoMusic让你的智能音箱自由播放任何歌曲

突破小爱音箱音乐限制:XiaoMusic让你的智能音箱自由播放任何歌曲 【免费下载链接】xiaomusic 使用小爱同学播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 一、被束缚的音乐体验:当智…...

VR禁毒学习机:禁毒宣传数字化的创新尝试

在数字化时代,禁毒教育不再局限于课堂讲解和图文展板,虚拟现实(VR)技术的加入为这一领域注入了新的活力。VR禁毒学习机的出现,打破了传统教育的枯燥模式,以沉浸式、互动式的方式让体验者在虚拟环境中学习识…...

解决语音角色识别中的误识别与长会漂移问题(陌生人机制 + 稳定性规则)

在熙瑾会悟产品研发的时候,有以下能力:说话人识别(Speaker Identification)。简单说就是:系统不仅要把语音转成文字,还要知道 “是谁在说话”。这个能力在很多场景都会用到,比如:会议…...

OpenClaw Docker 部署 · 完整速查手册

OpenClaw Docker 部署 完整速查手册 适用:Docker 安装、排错、命令解释 制作时间:2026.03.13一、基础 Docker 命令 删除旧容器(重新部署必用) docker rm -f openclaw 查看容器日志(看报错/运行状态) dock…...

FanControl风扇控制进阶指南:从问题诊断到智能调节的全面解决方案

FanControl风扇控制进阶指南:从问题诊断到智能调节的全面解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...

如何构建OpenCore兼容的Hackintosh硬件系统?全面的硬件选择与配置指南

如何构建OpenCore兼容的Hackintosh硬件系统?全面的硬件选择与配置指南 【免费下载链接】OpenCore-Install-Guide Repo for the OpenCore Install Guide 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Install-Guide 构建Hackintosh系统最核心的挑战…...

倒立摆的优雅舞步:用代码解读事件触发模型的魔法

【模型参考文献】事件触发模型 基于倒立摆matlab仿真 模型为状态空间形式 事件触发机制可自行调节参数在控制理论的王国里,倒立摆是一个令人着迷的存在。它就像一个不稳定的醉汉,随时可能倾倒,却又能在控制算法的引导下优雅起舞。今天&#x…...

Windows快捷键失效?3个维度彻底解决热键冲突

Windows快捷键失效?3个维度彻底解决热键冲突 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 当你的设计软件快捷键突然失灵&#xff…...

革新性macOS应用管理:告别命令行的图形化解决方案

革新性macOS应用管理:告别命令行的图形化解决方案 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 在macOS系统管理中,应用维护往往意味着与终端命令的长…...

2026年3月份大更新来了!小黄鸭补帧3.2.2 AI插帧软件分享,小黄鸭补帧 小黄鸭使用教程losslessscaling使用教程!胎教级别!

哈喽 大家好 今天给大家分享一下,如何用这个小黄鸭软件,让我们的老显卡再战十年! 为什么叫它小黄鸭拼好针呢?因为它可以把游戏或者视频的帧数,通过补帧的方式变得非常高,让老显卡也能流畅跑起来&#xff0c…...

从100kHz到6GHz的开源突破:LibreVNA矢量网络分析方案全解析

从100kHz到6GHz的开源突破:LibreVNA矢量网络分析方案全解析 【免费下载链接】LibreVNA 100kHz to 6GHz 2 port USB based VNA 项目地址: https://gitcode.com/gh_mirrors/li/LibreVNA LibreVNA是一款面向射频工程师、电子爱好者和科研人员的开源矢量网络分析…...

SuperPNG使用难题攻克指南:从安装到优化的3个实战技巧

SuperPNG使用难题攻克指南:从安装到优化的3个实战技巧 【免费下载链接】SuperPNG SuperPNG plug-in for Photoshop 项目地址: https://gitcode.com/gh_mirrors/su/SuperPNG SuperPNG是一款专为Photoshop打造的免费插件,核心功能是生成更高质量的P…...

Umi-OCR多引擎协同策略:实现98%文档识别准确率的实战指南

Umi-OCR多引擎协同策略:实现98%文档识别准确率的实战指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/G…...

简简单单三步,让你成功更换centos7 的YUM源

centos7在2024年6月30日,生命周期结束,官方不再进行支持维护,官方的YUM源也下线了,下线的方式是使yum的域名不解析。所以现在需要配置国内的YUM源 1.打开源文件:打开CentOS-Base.repo sudo vi /etc/yum.repos.d/CentOS-Base.repo 2.替换源文件…...

扣子(Coze)实战:语文课本突然不枯燥了!输入诗名,Coze一键让古诗词“活”过来

大家好,我是吾鳴。专注于分享提升工作与生活效率的工具,无偿分享AI领域相关的精选报告,持续关注AI的前沿动向。 最近发现一个很有意思的赛道,那就是AI古诗词赛道,这个赛道的内容就是语文课本中的一篇枯燥的文言文古诗词…...

Universal Pokemon Randomizer ZX:重新定义宝可梦游戏体验的开源工具

Universal Pokemon Randomizer ZX:重新定义宝可梦游戏体验的开源工具 【免费下载链接】universal-pokemon-randomizer-zx Public repository of source code for the Universal Pokemon Randomizer ZX 项目地址: https://gitcode.com/gh_mirrors/un/universal-pok…...

【程序员转行】AI+嵌入式风口来袭,程序员/小白必看的职业突围指南

人工智能的浪潮正全面重塑全球就业市场,其中AI与嵌入式领域的人才需求呈现爆发式增长态势,成为就业市场的“香饽饽”。未来几年,就业趋势将持续向AI、大数据领域聚拢,人机协同模式普及、培养AI难以替代的核心能力、坚持终身学习&a…...

当GitHub界面成为协作障碍:如何用87KB插件实现全界面中文改造

当GitHub界面成为协作障碍:如何用87KB插件实现全界面中文改造 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 问题&#x…...

MATLAB环境下基于傅里叶分析的3级自适应信号分解方法

MATLAB环境下一种基于傅里叶分析的自适应信号分解方法。 该方法为数据驱动的傅里叶分解方法,分解的前3级的能量分布,分解的前3级基函数,分解的前3级模态分量如下。 算法可迁移至金融时间序列,地震信号,语音信号&#x…...

航空航天需求:Vue3如何扩展WebUploader支持三维模型文件的分片校验?

网工大三党文件上传救星:原生JS实现10G大文件上传(Vue3IE8兼容) 兄弟,作为刚入坑网络工程的山西老狗,我太懂你现在的处境了——老师要10G大文件上传的毕业设计,网上找的代码全是“断头路”,后端…...

告别手动描点:WebPlotDigitizer让图像数据提取效率提升10倍的实战指南

告别手动描点:WebPlotDigitizer让图像数据提取效率提升10倍的实战指南 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/web/WebPlotDigitizer 在科…...