杂识-HSV与伪彩图

article/2025/9/21 18:57:47

HVS

  HSV(Hue, Saturation,Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间,也称六角锥体模型(Hexcone Model)。
这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。
在这里插入图片描述

色调H

  用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的中间补色是:黄色为60°,青色为180°,紫色为300°;
在这里插入图片描述

饱和度S

  饱和度S表示颜色接近光谱色的程度。
  一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
在这里插入图片描述

明度

  明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

与RGB

  RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
  HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
在这里插入图片描述

伪彩图

  伪彩色(pseudo-color)图像的每个像素值实际上是一个索引值或代码,该代码值作为色彩查找表CLUT(Color Look-Up Table)中某一项的入口地址,根据该地址可查找出包含实际R、G、B的强度值。这种用查找映射的方法产生的色彩称为伪彩色,生成的图像为伪彩色图像。用这种方式产生的色彩本身是真的,不过它不一定反映原图的色彩。在VGA显示系统中,调色板就相当于色彩查找表。从16色标准VGA调色板的定义可以看出这种伪彩色的工作方式。
  彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。例如16种颜色的查找表,0号索引对应黑色,…,15号索引对应白色。彩色图像本身的像素数值和彩色查找表的索引号有一个变换关系,这个关系可以使用Windows 95/98定义的变换关系,也可以使用你自己定义的变换关系。使用查找得到的数值显示的彩色是真的,但不是图像本身真正的颜色,它没有完全反映原图的彩色。
  伪彩色一般用于65K色以下的显示方式中,标准的调色板是在256K色谱中按色调均匀地选取16种或256种色彩。一般应用中,有的图像往往偏向于某一种或几种色调,此时如果采用标准调色板,则色彩失真较多。因此,同一幅图像,采用不同的调色板显示可能会出现不同的色彩效果。
  伪彩色图像处理是把一幅单色图像转变为彩色图像的技术。在数字图像处理中广泛地应用了伪彩色图像显示。将彩色图像转换为灰度图像是一个不可逆的过程,灰度图像也不可能变换为原来的彩色图像。而某些场合需要将灰度图像转变为彩色图像;伪彩色处理主要是把黑白的灰度图像或者多波段图像转换为彩色图像的技术过程。其目的是提高图像内容的可辨识度。其中方法有,灰度分层法,灰度变换法。
  伪彩色处理是根据特定的准则对灰度值赋以彩色的处理。由于人眼对彩色的分辫率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。这是一种视觉效果明显而技术又不是很复杂的图像增强技术。灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辫率却很强,这样将黑白图像转换为彩色图像后,人眼可以提取更多的信息量。
  伪彩色处理的基本原理是将黑白图像或者单色图像的各个灰度级匹配到彩色空间中的一点,从而使单色图像映射成彩色图像。对黑白图像中不同的灰度赋予不同的彩色。值得注意的是,伪彩色虽然能将黑白灰度转化为彩色,但这种彩色并不是真正表现图像的原始颜色,而仅仅是一种便于识别的伪彩色。
  伪彩色处理技术的实现方法有多种,如密度分层法、灰度级-彩色变换法、频域滤波法等等 [2] 。其中灰度级-彩色变换伪色彩处理技术可以将灰度图像变为具有多种颜色渐变的连续彩色图像。该方法先将灰度图像送入具有不同变换特性的红、绿、蓝三个变换器,然后再将三个变换器的不同输出分别送到彩色显像管的红、绿、蓝枪,再合成某种颜色:同一灰度由三个变换器对其实施不同变换,使三个变换器输出不同,从而不同大小灰度级可以合成不同颜色。
  最简单的伪彩色处理方法是简单的伪彩色指定。
  一幅黑白图像可以看成是二维光强度函数,我们按光的强弱分成2m个灰度级,比如m=4,即16个灰度级。使每个灰度级指定为某种伪彩色即可。比如,血管与肌肉在黑白图中只差一个灰度级,但我们可以指定血管为红色、肌肉为绿色,于是图像就极其分明,这在计算机中只需把对应的两种四位的二进制数字,分别对应红光和绿光的输出即可。
  为了得到灰度分层有更宽范围的伪彩色图像,我们可采用灰度映射伪彩色的方法:为了使灰度有更宽范围的伪彩色,首先要对黑白图像做直方图均衡化处理,使图像中原有的灰度级的概率密度更均匀,再把均衡化的图像看成是R,G,B3幅单色图像,进行独立的映射变换。

核医学与伪彩图

  核医学中使用伪彩图展示PET图像,正常PET图像是灰度图像。灰度图像只能使用从黑色到白色的灰度变换表达细胞代谢活跃值。灰度图像不能直观展现出数值分布。伪彩图可以帮助医生将灰度图像分布在色彩变换更为明显的彩色图像上;
  下图是左侧的PET伪彩图+CT灰度图和右侧的PET灰度图,明显可以看到伪彩图更清楚的表现出了高代谢的病灶位置,结合CT的解刨位置帮着医生区分病灶范围;
在这里插入图片描述

计算伪彩图

  具体计算:
    1.灰度图像是二维short类型数值图像img;
    2.预定义一个伪彩图,从0到255个RGB值,组成一个256的数组lut;
    3.设定一个灰度范围range,将img中的灰度值对照range,归一化到0到255的范围内;并通过查lut得到对应的RGB颜色;或者将img通过窗宽和窗位转换为0到255的范围内,并通过查lut得到对应的RGB颜色;

使用灰度值范围来计算RGB

  计算RGB颜色的long值可以通过RGB宏:

#define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
long color = m_pLut[255];
for(y = 0; y < height; y++){for(x = 0; x < width; x++){double value = pPixel[x + y * width];c = UCHAR(255 * float(value - min) / (max - min));		color = m_pLut[c];pPixel[x + y * width] = color;}
}

使用窗宽窗位来计算RGB

  具体计算:
  1.灰度图像是二维short类型数值图像img;
  2.将img根据窗宽和窗位的计算,所有的灰度值都归一化到0到255的范围内;
  3.查LUT表,生成对应的RGB值;

void ConvertDigitImageToGrayImageByWindowLevelAndWindowWidth(short* digitImage, short* grayImage, int size, int window_level, int window_width){double rate = 256.0 / window_width;for (size_t i = 0; i < size; i++){int tmp = 128.0 + (grayImage[i] - window_level)*rate;if (tmp < 0){tmp = 0;}else if (tmp > 255)	{tmp = 255;}digitImage[i] = tmp;}
}short* pDigitImage = new short[size]{0};
long* pRGBImage = new long[size]{0};
// 1.窗宽窗位转换
ConvertDigitImageToGrayImageByWindowLevelAndWindowWidth(pDigitImage, pPixel,size,500,1000);// 2.查LUT,生成RGB值;
long color = m_pLut[255];
for(y = 0; y < height; y++){for(x = 0; x < width; x++){int value = pDigitImage[x + y * width];				color = m_pLut[value];pRGBImage[x + y * width] = color;}
}

  下图是不同伪彩LUT的效果图;
在这里插入图片描述

脑电波与伪彩图

  脑电信号系统中也有伪彩图这一功能。在脑电软件中,伪彩图被成为地形图或者热力图;数值和脑电导联信号的强度有关,具体怎么计算就不得而知了。
在这里插入图片描述

参考资料

1.HSV颜色模型
2.伪彩色图像


http://chatgpt.dhexx.cn/article/KV1PjWFc.shtml

相关文章

Josh 的学习笔记之数字通信(Part 4——带通调制和解调)

文章目录 1. 为什么需要调制2. 数字带通调制技术2.1 正弦信号的相量表示2.2 相移键控2.3 频移键控2.4 幅移键控2.5 振幅相位联合键控2.6 波形振幅系数 3. 高斯噪声背景下的信号检测3.1 判决区域3.2 相关接收机3.2.1 二进制判决门限 4. 相干检测4.1 PSK 的相干检测4.2 采样匹配滤…

数字成像系统概述

1. 色彩科学 1.1 光源 &#xff08;1&#xff09;光源的度量 Luminance: 描述发射或者反射多少光&#xff0c;单位nit或者cd/m^2 Illuminance: 描述落在一个表面多少光&#xff0c;单位lux 比如 Bright light约为111000lux&#xff0c;sunrise/sunset约为400lux&#xff0c;m…

数字图像期末复习

目录 绪论数字图像基础图像感知和获取简单的图像形成模型 图像的取样和量化数字图像表示空间和灰度分辨率 像素间的一些基本关系相邻像素邻接性、连通性、区域和边界 灰度变换与空间滤波基础知识一些基本的灰度变换函数图像反转对数变换幂次变换分段线性变换函数 直方图处理离散…

数字图像处理知识点

数字图像处理知识点 目录 数字图像处理知识点 第一章 概述 1.1数字图像处理相关概念 1.2数字图像处理系统流程图&#xff1a; 1.3 数字图像处理主要研究内容 第二章 数字图像处理基础 2.1图像的数字化及表达 2.2图像的采样和量化 2.3图像的分类 第三章 图像的基本运算…

数字图像处理系统

一、开发环境 以Windows10为平台&#xff0c;以MATLAB R2016a为开发工具&#xff0c;结合GUIDE开发。 二、系统主要功能 &#xff08;1&#xff09;文件操作 实现打开一幅图片&#xff0c;完成对图像数据的读取、显示和存储、清空。 &#xff08;2&#xff09;几何变换 图像的几…

神经网络alpha阶逆系统

逆系统方法的本质上是用反馈线性化方法来研究控制系统设计理论的一种途径&#xff0c;是一种比较一般性的方法。逆系统方法的基本思想是&#xff1a;首先&#xff0c;利用对象的逆系统构成一种可用反馈方法实现的Q阶积分逆系统&#xff0c;将对象补偿为具有线性传递关系的系统&…

数字水印的攻击类型

数字水印的攻击类型 引言 数字水印技术作为信息隐藏技术的一种&#xff0c;不可见性和鲁棒性是它的主要特点。通常在水印嵌入时我们需要来确定水印的嵌入量&#xff0c;以此来平衡不可见性和可见性之间的关系。 方法 对于不可见性&#xff0c;我们可以直观的判断出来。但对于鲁…

数字图像处理复习

简答题&#xff1a;8’*3 1、图像的数字化过程&#xff1a;采样&#xff0c;分色&#xff0c;量化&#xff0c;编码相关概念。 采样&#xff1a;采样的实质就是用多少点来描述一幅图像&#xff0c;采样结果质量的高低就是图像分辨率&#xff0c;连续图像的空间样本实际上就是用…

MATLAB数字水印实现

目 录 摘 要 2 ABSTRACT 3 1.数字水印技术概述 4 1.1 数字水印技术提出的背景 4 1.2 数字水印的基本特点 4 1.3 数字水印的应用 5 1.MATLAB软件的介绍 7 2.1 MATLAB研究数字水印的优点 7 2.2 MATLAB函数介绍 8 3.傅立叶域水印理论基础 10 3.1 傅立叶变换简述 10 3.1.1 一维离散…

数字图像处理基础知识(自救指南)

概念 本部分多来自课件&#xff0c;见水印 数字图像处理的目的 提高图像的视感质量&#xff0c;以达到赏心悦目的目的。提取图像中所包含的某些特征或特殊信息&#xff0c;主要用于计算机分析&#xff0c;经常用作模式识别、计算机视觉的预处理。对图像数据进行变换、编码和压…

通过FPGA计算矩阵的伪逆pinv

1.问题描述: 一个12*4的矩阵。 2.部分程序: 然后我们要定义个函数,用来计算复数转置的。 然后是复数乘法器, 这个过程中,我们暂时还没截位,所以计算结果会和matlab一样,后面的会有大量的位宽截取,所以计算结果需要换算才行。 然后,中间计算过程中,涉及到精度要求的…

巨正则系综处理理想气体

经典统计中的巨正则系综需要对粒子数求和 使用巨正则系综计算理想气体的好处是方便求化学势&#xff0c;求化学势是用粒子平均数来求

系综的实现方式(nve、nvt、npt)

一、NVE系综 更新位置和速度&#xff0c;v和e恒定。 二、NVT系综 几种实现的方式&#xff1a; 如&#xff1a; fix 1 all nve #更新位置和速度&#xff0c;e和V保持不变。若只有这个命令&#xff0c;就只nve系综&#xff0c;如果和控温命令一起&#xff0c;就是nvt系综。fix 2 …

新手入门 | 跑分子动力学必须要知道的5个点

更多精彩请关注公众号&#xff1a;分子动力学 一、基 本 介 绍 随着计算机的软硬件和计算技术的发展&#xff0c;利用计算机对物质的微观结构和运动进行数值模拟计算得到了迅速发展&#xff0c;并在此基础上发展了用数值运算统计求和的方法&#xff1a;分子动力学 (MD) 方法和…

lammps多孔结构

原创 公众号LAMMPS交流站 点击上方蓝字关注我们 大家好&#xff0c;我是YJ学长&#xff0c;本文的模型是小编在lammps模拟Ni的熔化过程中偶然生成了一帧多孔结构&#xff0c;小编觉得图挺好看的&#xff0c;因此做一期推送共同来讨论这一现象。 因能力有限&#xff0c;这种…

量子计算入门学习笔记 (八—— 密度算符 )

hello&#xff0c;大家好&#xff0c;如果您是第一次观看我的博客&#xff0c;如果您也是和我一样刚入门量子力学或是量子计算相关的学习&#xff0c;纠结于量子计算的抽象与晦涩难懂&#xff0c;那么本专栏&#xff08;量子计算&#xff09;一定是您的不二之选&#xff0c;学海…

lammps npt系综iso和aniso控压对比

大家好&#xff0c;我是小马老师。 本文讲解lammps基础命令fix npt设置。 关于系综的设置&#xff0c;前面已经介绍过多次&#xff0c;但在咨询中发现&#xff0c;对于大部分初学者来说&#xff0c;对于系综选择和设置还是有些困惑。 fix npt命令名称就可以看出&#xff0c;它的…

lammps案例:npt系综练手,H2压缩模拟

上一篇文章中介绍了npt系综的设置方法&#xff0c;本文给出一个lammps模拟氢气压缩的案例&#xff0c;熟悉npt系综的设置方法。 模拟温度300k&#xff0c;压强100GPa&#xff0c;在该条件下&#xff0c;氢气应该为固态。 在MS中建立H2模型&#xff0c;共包含1000个H原子&…