图像的颜色及Halcon颜色空间转换transfrom_rgb/trans_to_rgb/create_color_trans lut

图像的颜色及Halcon颜色空间转换

文章目录

  • 图像的颜色及Halcon颜色空间转换
    • 一. 图像的色彩空间
      • 1. RGB颜色
    • 2. 灰度图像
    • 3. HSV/ HSI
    • 二. Bayer 图像
    • 三. 颜色空间的转换
      • 1. trans_from_rgb算子
      • 2. trans_to_rgb算子
      • 3. create_color_trans_lut算子

图像的颜色能真实地反映人眼所见的真实世界。图像的颜色信息,特别是通道信息,有助于感兴趣特征的描述,也有利于从空间域上对图像进行分割或增强操作。下面将介绍图像的色彩表达方式及其通道操作。

一. 图像的色彩空间

1. RGB颜色

RGB 是我们最熟悉的一种表示颜色的方式,也就是彩色。彩色图像的每个像素拥有3个通道,各8位,分别表示R(Red,红色)、G(Green,绿色)、B(Blue,蓝色)3个分量,各自的取值范围都为0 -255。将这3种分量组合,可以得到更多的颜色表示方式。例如,红色和绿色结合可以产生黄色,红色和蓝色结合产生红色,绿色和蓝色结合产生青色。这3种颜色分量也可以用来表示不同等级的灰色。例如,当3个分量都为0时,表示的颜色是黑色;当3个分量都为最大值255时,将得到白色。3个分量的组合,将产生范围为0~255的由深到浅的灰色。

2. 灰度图像

灰度图像即单通道图像,每个像素的灰度值为0~255,其中0表示全黑,255表示全白。对于显示或者形态学处理等操作来说,灰度图像已经足够满足需求。因此,为了节约计算量并加快处理速度,也会将彩色图像转化为灰度图像进行处理。在Halcon中,可以使用rgb1_to_gray 算子或rgb3_to_gray 算子将彩色图像转化为灰度图像。注意,灰色并不是RGB分量的等比例组合,RGB分量的权重各不相同。

3. HSV/ HSI

HSV分别代表色调(Hue)、饱和度(Saturation)、纯度(Value)。HSI则表示色调(Hue)、饱和度(Saturation)、亮度(Intensity)。
色调反映了人眼对颜色的感觉,如看上去是红色还是蓝色。饱和度反映了颜色中所含的颜色数量的差别,如红色和粉色的饱和度就不相同。纯度或者亮度反映的是光线对颜色的影响程度,或者说是颜色的密度,如深灰和浅灰的差别。
当RGB颜色空间不足以区分检测目标与背景时,可以使用HSV/HSI进行尝试。例如,检测深蓝背景上的浅蓝色目标,可以使用饱和度或者明度进行区分;又如,当对RGB通道的图像进行平滑滤波等降噪操作时,图像的颜色分量将发生变化,而如果是在HSI分量上操作则不会有这个问题。
因此,可以根据具体要求,将图像从RGB抓换为HSV/HSI,或者由HSV/HSI重新转换为RGB。

二. Bayer 图像

某些专业级相机会使用3个滤镜,分别将光线分为红、绿、蓝3个分量,以此来获取彩色图像。但是由于其成本高,实用性不强,没有得到广泛使用。更多的做法是使用单芯片和一个Bayer滤色片过滤不同颜色的光线并得到不同通道的颜色信息,用这种方法输出的图像就是Bayer图像,即每个像素只有一个颜色分量的图像。
一般情况下,相机或者其驱动程序会自动对Bayer图像进行一些转换,并输出正常的RGB图像。但有些时候,如果未使用Halcon的图像采集接口,而是用相机SDK采集的图像,则可能会输出未经处理的 Bayer 图像,如图所示。
在这里插入图片描述
图(a)为相机采集得到的Bayer图像,图(b)为图 (a)的Bayer 图像放大两倍后的局部图像,图(c)为该Bayer 图像局部放大多倍后的像素排列图。例如,图(c)中的第一行第一列的像素标注为G,表示该像素对应于绿色通道中该位置的像素灰度值;第一行第二列的像素标注为B,表示该像素对应于蓝色通道该位置的灰度值。因此,Bayer 图像的类型也是由该像素排列图的前两个像素决定的。
如果要将 Bayer 图像转换为RGB图像,可以使用Halcon中的cfa_to_rgb算子进行色彩的转换。cfa to_rgb算子根据输入图像的Bayer 图像类型,通过插值的方式获取RGB图像。该算子包括以下4个主要参数。
(1)参数1:CFAImage,表示输入的Bayer图像。
(2)参数2:RGBImage,表示输出的RGB彩色图像。
(3)参数3:CFAType,表示 Bayer 图像的类型,即采用哪种编码方式。如图(c)所示,该图像中第一行的前两个像素为G和B,因此该图的CFAType应该选择bayer_gr。其他类型还有bayer_gr、bayer_bg、bayer_rg,应根据具体类型进行选择。
(4)参数4:Interpolation,表示插值的方法。默认选择biliner,还可以选择biliner_dir或
biliner_enhanced。前者会减少插值后的锯齿,使边缘更平滑;后者又在前者的基础上优化了插值结果,使颜色更加真实,但是相应的代价是运行时间更长了。

三. 颜色空间的转换

在图像处理的过程中,有时仅参考RGB颜色空间无法得到理想的结果,这就需要对颜色空间做一些转换。例如,使用HSV或者HSI颜色空间,可以通过色调、饱和度、亮度信息来对图像好行处理。例如,若要识别具体的颜色,可以使用HSV空间中的H分量(色调)或者S分量(饱和度进行判断;又如,若要调整图像的亮度,可以使用HSV空间中的V分量(色调)进行调整。
Halcon支持多种颜色空间的快速转换,如transfrom_rgb、trans_to_rgb、create_color_trans lut,下面举例说明。

1. trans_from_rgb算子

该算子用于将一个RGB图像转换成任意的颜色空间,该算子有7个主要的参数。参数13分别为输入的RGB3个通道的图像。参数46分别为输出的3个通道的图像。参数7为输出图像的颜色空间,可选的有HSV、HIS、YIQ、YUV、CIELab等。

2. trans_to_rgb算子

该算子与trans from_rgb算子的作用正好相反,它用于将任意颜色空间的3个通道图像转换成RGB图像,该算子有7个主要的参数。参数13分别为输入的3个通道的图像。参数46分别为输出的RGB3个通道的图像。参数7为输入图像的颜色空间,可选的有HSV、HIS、YIQ.YUV、CIELab等。

3. create_color_trans_lut算子

该算子的功能是创建一个颜色查找表(Look up Table,LUT),用于将RGB图像转换成另一个颜色空间。颜色查找表是一种预定义的颜色“索引”,可以将256色的RGB值分别进行指定。简言之,就是将原始颜色通过查表的方法赋值为另一种颜色。
该算子的第1个参数为ColorSpace,表示转换操作的另一种颜色空间;第2个参数为TransDirection,表示转换的方向,如fromrgb或者to_rgb;第3个参数为NumBits,表示输入图像的位数,也是输出图像的位数;第4个参数为输出的LUT的句柄。

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

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

相关文章

挑战Python100题(8)

100+ Python challenging programming exercises 8 Question 71 Please write a program which accepts basic mathematic expression from console and print the evaluation result. 请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。 Example: If the follo…

每日一练:LeeCode-20. 有效的括号(简)【栈】

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有…

pinia--vue3中的状态管理

一、Pinia是什么? Pinia 是 Vue 的存储库,它允许跨组件/页面共享状态。实际上,pinia就是Vuex的升级版,官网也说过,为了尊重原作者,所以取名pinia,而没有取名Vuex,所以大家可以直接将…

Mybatis 日志配置

要查看MyBatis的日志语句,您可以在一个包、一个完全限定的映射器类名、一个命名空间或一个完全限定的语句名称上启用日志记录。 再次强调,如何做这取决于所使用的日志实现。我们将展示如何在SLF4J(Logback)中进行配置。配置日志服务只需添加一个或多个额…

zdppy_api框架快速入门

概述 zdppy_api是一款为了快速开发而生的,基于异步的,使用简单的Python后端API接口开发框架。 本框架的目标是让Python后端开发变得越来越简单,直到发现原来还可以更简单! 一切都是为了提高开发效率!!&…

标题:探索C语言中的While循环结构

各位少年: 在C语言编程中,循环是一种强大的工具,它允许我们重复执行一段代码,直到满足特定的条件为止。其中,while循环是一种常用的循环结构,它以其简洁的语法和灵活的应用场景赢得了程序员们的青睐。下面…

隧道代理HTTP工作原理:一场奇妙的网络魔法表演

嘿,小伙伴们!今天我们要一起探索一个有趣的话题——隧道代理HTTP的工作原理。这不是普通的表演,而是一场奇妙的网络魔法表演! 首先,让我们想象一下,网络世界就像一个大舞台,而我们每个人都是这…

RK3566 Android 11平台上适配YT8512C 100M PHY

RK3566代码之前适配的1000M IC RTL8211F , 现在需要在之前的基础上修改PHY IC 为裕泰的YT8512C ----------------------------------------------------------------------//将1000M 的配置关掉,改为100M 配置,查看RK3566 资料关于以太网的配置即可知道如何修改 #if…

Linux驱动开发简易流程

推荐视频: 正点原子【第四期】手把手教你学 Linux之驱动开发篇 小智-学长嵌入式Linux&Android底层开发入门教程 能力矩阵 基础能力矩阵 熟悉c/c、熟悉数据结构 熟悉linux系统,Shell脚本,Makefile/cmake/mk 文件IO、多线程、竞争、并发…

AutoSAR(基础入门篇)3.1-Autosar中RTE的概述

目录 一、RTE概述 1、什么是RTE 2、RTE的作用 二、RTE对Runnables的运行支撑 1、作为运行环境的主要功能点

Kubernetes 网络架构

大家好,我是升仔 Kubernetes 网络架构概览 Kubernetes 网络架构的设计理念是简化容器间的通信,确保 Pods 间可以无障碍通信,同时对外提供访问服务的机制。这一设计理念贯穿于整个网络架构。 Pod 网络模型 基本概念:在 Kuberne…

深度优先和广度优先

文章目录 前言一、深度和广度的区别二、代码演示1.准备数据,构造树2.深度优先遍历3.广度优先遍历 总结 前言 深度优先和广度优先的区别: 搜索方式不同 。深度优先搜索算法不全部保留结点,扩展完的结点从数据库中弹出删去;广度优先搜索算法需…

oracle-sga-shared_pool

shared pool 缓冲sql语句和执行计划 shared pool由三部分组成 free libray:缓存sql执行计划 row cathe :缓存数据字典 硬解析:1判断语法2判断对象是否存在3有没有权限4 从n个执行方案中选出最优解,生成执行计划,这一…

壮志酬筹>业务被裁>副业转正>收入回正。一个前黑马程序员老师的2023

从年初时的踌躇满志,到年中时整个业务线被砍。全职做前端训练营,四个多月的时间帮助100多名同学拿到了满意的offer,同时也让我的收入重归正轨。仅以这个视频记录我,一个普通程序员的 2023 。 视频版可直接访问 Hello,大…

Linux基础知识-命令

Linux的基础命令: 1.登录及其用户 sudo //使用超管权限(没登录之前); sudo useradd -m //创建一个xx用户; userdel (-r)(-f&a…

基于ElementUI二次封装弹窗组件

效果&#xff1a; 一、自定义内容类型弹窗 <!-- title&#xff1a;对话框的标题confirmLoading&#xff1a;当前是否处于提交中titleCenter&#xff1a;对话框标题居中方式footerCenter&#xff1a;底部按钮的对其方式visible&#xff1a;是否显示弹窗width&#xff1a;设置…

JavaScript:正则表达式

JavaScript&#xff1a;正则表达式 什么是正则表达式正则表达式语法定义正则表达式判断是否有匹配的字符串查找匹配的字符串 正则表达式匹配法则元字符边界符量词字符类 什么是正则表达式 正则表达式用于匹配字符串中字符的组合模式。 正则表达式会依据其自身语法&#xff0c;…

2023 搞懂git 工作目录---暂存区---本地仓库---版本库

最近了解了下git的底层原理&#xff08;大神录制的视频放在最下方&#xff09;&#xff0c;记录下&#xff1a; 工作区 就是存放待提交文件的目录&#xff08;下图图解标注&#xff09;比如pyhon_test目录暂存区 .git目录下的index文件 对应的指令 git add本地仓库 .gi…

【操作系统】测试五

文章目录 单选题填空题 单选题 可以实现虚拟存储器的方案是。 【正确答案&#xff1a;D】 A. 固定分区方式 B. 可变分区方式 C. 纯分页方式 D. 请求页式 哪种设备属于字符设备&#xff1f; 【 正确答案&#xff1a;D】 A. 磁盘 B. 磁带 C. 光盘 D. 键盘 哪种设备属于块设备&a…

图片格式 WebP、JPEG、PNG、SVG 及转换

文章目录 图片格式 WebP、JPEG、PNG、SVG 及转换1. 图片格式1.1 WebP1.2 JPEG1.3 PNG1.4 SVG1.5 ... 2. 格式转换2.1 Python 批量转 WebP2.2 在线转换工具2.2.1 Shutterstock2.2.2 PicWish2.2.3 MyEdit2.2.4 Freeconvert2.2.5 iLoveIMG Reference 图片格式 WebP、JPEG、PNG、SV…