HSV to RGB and RGB to HSV

pytorch版 RGB_to_HSV和HSV_to_RGB pytorch实现图像RGB和HSV色彩空间的相互转换,可直接加入神经网络中,支持反向传播,支持cuda。 阅读详情

Sometimes we need to transform between color spaces in shaders.There 2 ways to transform between HSV and RGB.

The shorter one, which is not compatible on some IOS devices like iPhone6 Plus(may be it's due to the precision of e in rgb2hsv, maybe we can turn it a little bigger like 1.0e-6 in lowp so that it won't turn out to be 0):

vec3 rgb2hsv(vec3 c)
{
    vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
    vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
    vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));

    float d = q.x - min(q.w, q.y);
    float e = 1.0e-10;
    return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}

vec3 hsv2rgb(vec3 c)
{
    vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
    vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
    return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}

The longer one, not so beautiful but compatible on most devices, and it can be shorter, you can polish it as you wish:

vec3 hsvtorgb(float h, float s, float v) 
{
	float C = v*s;
	float hh = h * 6.0;
	float X = C*(1.0-abs(mod(hh,2.0)-1.0));
	float r,g,b;
	r = g = b = 0.0;
	if( hh>=0.0 && hh<1.0 )
	{
		r = C;
		g = X;
	}
	else if( hh>=1.0 && hh<2.0 )
	{
		r = X;
		g = C;
	}
	else if( hh>=2.0 && hh<3.0 )
	{
		g = C;
		b = X;
	}
	else if( hh>=3.0 && hh<4.0 )
	{
		g = X;
		b = C;
	}
	else if( hh>=4.0 && hh<5.0 )
	{
		r = X;
		b = C;
	}
	else
	{
		r = C;
		b = X;
	}
	float m = v-C;
	r += m;
	g += m;
	b += m;
	return vec3(r,g,b);
}

vec3 rgbtohsv(float r, float g, float b) 
{
 	float M = max(r,max(g,b));
 	float m = min(r,min(g,b));
 	float C = M-m;
	float h,s,v;
 	if( C==0.0 ) h=0.0;
 	else if( M==r ) h=mod((g-b)/C, 6.0);
 	else if( M==g ) h=(b-r)/C+2.0;
 	else h=(r-g)/C+4.0;
 	h*=60.0;
 	if( h<0.0 ) h+=360.0;
 	v = M;
 	if( v==0.0 )
 		s = 0.0;
 	else
 		s = C/v;
	h /= 360.0;
	return vec3(h,s,v);
}

CV — 色彩空间:RGB、HSV、HLS 文章目录CV — 色彩空间:RGB、HSV、HLS一、 RGB(一) RGB 颜色系统二、HSV(一) HSV颜色模型(二) 代码案例1. HSV 值进行目标物体的提取2. 使用 HSV 图像分割三、HLS1. HLS 颜色空间2. 代码案例参考资料 CV — 色彩空间:RGB、HSV、HLS 一、 RGB (一) RGB 颜色系统 RGB 简介: RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越 阅读详情

相关推荐

rgb转hsv (Verilog)

rgb色彩空间对人的友好性远不及hsv色彩空间,在hsv空间,我们可以容易区分不同颜色,可以将亮度信息与颜色信息分离开来,也可以单纯增强图像色彩的饱和度,比如让花瓣更红更饱满。hsv在彩色边缘分割也大有用处,传统的边缘提取都是依靠灰度信息,其实灰度图往往只能保留90%的边缘信息,剩余的10%是无法体现出来的。这就需要彩色边缘分割来进行补充,标量的梯度就自然而然转为向量的梯度(rgb/hsv/hsi...

weixin_41957211的博客 4085

HSVtoRGB

该函数用于转换 HSV 颜色为 RGB 颜色。 COLORREF HSVtoRGB( float H, float S, float V ); 参数 H 原 HSV 颜色模型的 Hue(色相) 分量,0 <= H < 360。 S 原 HSV 颜色模型的 Saturation(饱和度) 分量,0 <= S <= 1。 V 原 HSV 颜色模型的 Value(明度) 分量,0 <= V <= 1。 返回值 对应的 RGB 颜色。 备注 .

enter回车键 1668

3D Slicer-最强大的开源医学图像分割工具简要概述

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。读/写DICOM图像和多种其他格式;三维图像、多边形网格和体积渲染的交互式可视化;手动编辑和标记图像;使用刚性和非刚性算法融合和共同配准数据;图像自动分割;跟踪图像引导程序的设备。所有的功能模块可在工具栏里找到,提供搜索,下拉选择,左右切换等功能。3D slicer的大概情况就介绍到这里。它的功能非常强大,也没有必要说掌握每个功能的使用。

Tina姐的博客 2万+

视频播放(二)

由于AVPlayer AVPlayerLayer两者要配合且没有全屏、进度,而MPMoviePlayerController则自带有全屏、进度等控制 import UIKit import MediaPlayer class ViewController: UIViewController { lazy var controller: MPMoviePlayerController

targetcloud 1786

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 432

Vue路由守卫实战:利用token实现跨项目免登录跳转(最新版)

本文详细介绍了如何利用Vue路由守卫和Token验证实现跨项目免登录跳转方案。通过核心架构设计、路由守卫精细化控制及Token交换安全实践,有效解决了多系统跳转中的认证问题,提升用户体验和系统连贯性。

n7o8p的博客 138

【主色提取】HSV 颜色空间与 RGB 颜色空间互相转化的公式和代码

RGB颜色使用的最多,分别为红色(R),绿色(G)和蓝色(B)。 HSV颜色中的H( hue) 表示色 调,由颜色名称来辨别,如红、橙、绿,它用角度度量,从-180° 到 180°,或从 0°到 360°; S( saturation) 表示色度或饱和度,指颜色 的深浅,例如同 样 是 红 色,也会因浓度不同分为深红和浅红,S 用百分比来度量,从 0% 到完全饱和的 100% ; V( value) 表示亮 度,指颜色的明暗程度,通常用百分比来度量,从黑 0% 到白100% 。

m0_51816252的博客 7199

气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型

本文通过建立不同类型干旱传播过程的触发阈值模型,解析了在不同等级气象干旱胁迫下诱发次一级干旱类型的触发阈值。通过贝叶斯概率模型,我们推导了气象干旱与水文干旱、农业干旱、地下水干旱之间的条件概率关系,进一步明确了气象干旱引发水文干旱、农业干旱和地下水干旱的概率及其触发阈值。该模型有效揭示了气象干旱对各级干旱类型的传播机制及其动态变化,为干旱预警系统的建立和水资源管理提供了理论依据和技术支持。

frankgis的博客 2503

由RGB到HSV颜色空间的理解

1. RGB模型 2. HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 5. opencv中RGB-->HSV实现 在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。 而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。第一次接触HSV,书本里首先抛出的

viewcode的专栏 14万+

Rockchip RK3568实战:手把手教你调试I2S音频驱动(附ALSA设备树配置详解)

本文提供Rockchip RK3568平台I2S音频驱动的实战调试指南。详细解析了从硬件连接到软件配置的全过程,重点涵盖ALSA驱动框架下的设备树配置、时钟计算、DMA参数设置以及常见问题(如无声、爆音)的排查与解决方法,帮助开发者快速定位并解决音频驱动难题。

weixin_28358083的博客 496

SAP中错记虚拟利润中心的调整,冲销处理实例

我非CO专业顾问。工作中遇到的问题,也会找资料,分析,测试。有时这个过程会拿到结果,解决问题。遂将过程记录下来备查。读者请谨慎参考!EC-PCA: 利润中心记账流程_9ke0-优快云博客。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 1795

HSV转RGB

背景

假如技术娶了生活... 6041

极智嘉嵌入式面试题及参考答案

IIC(Inter-Integrated Circuit)即集成电路总线,是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它仅使用两根线,即串行数据线 SDA 和串行时钟线 SCL,就能实现多个设备之间的通信,具有简单、高效、占用资源少等优点,广泛应用于各种嵌入式系统中。

大模型大数据攻城狮的专栏 921

Algorithm to convert RGB to HSV and HSV to RGB in range 0-255 for both

current community chat Stack Overflow Meta Stack Overflow Stack Overflow Careers your communities Sign up or log in to customize your list. more

凌风探梅的专栏 2455

三维空间刚体运动4-3:四元数线性插值方法:Squad

摘要:四元数插值三个方法Slerp、Squad和Spring既复杂又很重要,为了详细阐述,故每个方法独立成一篇博文讲解,没有插值的四元数是没有灵魂的,插值的重要性不言而喻。Slerp是经典的两点间一阶连续可导插值方法,Squad方法在Slerp的基础上实现多点间的一阶连续可导,而Spring则可以实现多点间的二阶连续可导,更适合复杂的曲线,此系列博文也是国内首篇介绍Spring的中文资料。

shao918516的博客 9217

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Matrix to convert between HSV and RGB

Algorithm RGB -> HSV0 0 0 max = MAX( R, G, B )min = MIN( R, G, B )1) max = minh = 02) max = Rh = (60 * (G - B) / (max - min) + 360 ) mod 3603) max = Gh = 60 * (B - R) / (max - min) + 1204) max = Bh =

燕青专栏 791

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

How to make conversion between RGB and HSV? [Python sourcecode]

I get following codes from a Japanese Ghosts Blog, so I neglect the original URL for my hate of them.RGB => HSVdef RGB2HSV( r, g, b ):    r, g, b = map( float, (r,g,b ) )    if r == g and g == b:    

Junelf's BLOG 1530

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

How RGB is related to HSV, and how to implement hue shifting on the iPhone

How RGB is related to HSV, and how to implement hue shifting on the iPhone Last weekend, I wrote some code that shifted hues in existing colors. To do that, I needed to improve my understanding of

我用CV我自豪。 1326

颜色空间之RGB和HSV互转

定点实现RGB和HSV的互转。

小豆豆~ 447

RGB 和 HSV 互相转换算法

一、简介 RGB 是我们接触最多的颜色空间,分别为红色(R),绿色(G)和蓝色(B)。HSV 是用色调H,饱和度S,明亮度V来描述颜色的变化,H取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。饱和度S越高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。H表示颜色明亮的程度,对...

lly_3485390095的博客 3万+

数字图像处理——RGB与HSV图像互相转换原理

01—RGB与HSV介绍讲RGB图与HSV图的互相转换之前,我们先分别介绍一下这两种图像。首先是RGB图像RGB图像是一种三通道图像,通常用于表示彩色图,它由相同行、列的红(Red)、绿(...

shandianfengfan的博客 4万+

【shaderforge学习笔记】 RGB to HSV、HSV to RGB节点(色彩空间转换节点)

shaderforge 色彩空间转换 一官方说明 二简单介绍HSV色彩空间 三颜色空间的转换 四应用实例-调节图片的色相饱和度明度 五自定义UnityShader实现色彩空间的转换 参考 shaderforge 色彩空间转换 一、官方说明 RGB to HSV RGB to HSV节点根据节点输入的RGB颜色值输出HSV(色相、饱和度和明度)。色相和饱和度在0...

赞美月亮的专栏 3850

从 RGB 到 HSV 的转换详细介绍

从RGB 到 HSV 的转换详细介绍 1.RGB RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。 红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰...

一摩尔自由的博客 2万+

【darknet源码解析-29】图像RGB2HSV与HSV2RGB格式互转

本系列为darknet源码解析,由于在image.c中涉及到图像的RGB,YUV,HSV格式,在本文我们将image.c中涉及到的rgb_to_hsv()函数以及hsv_to_rgb()函数进行解析.原文链接:https://blog.youkuaiyun.com/caicaiatnbu/article/details/104070129。

生活需要深度 753

python--RGB转HSV

RGB:颜色空间相对简单,也最为普遍,就分为三个颜色通道,分别为红色,绿色,蓝色这三种基本色调的值,然后将这三个颜色融合在一起,也就成为一种颜色。 HSV:是个六棱锥模型,这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。 为什么使用HSV去判断色差: 用RGB比较颜色之间的相似度时,往往一个通道的一点改变,会导致最后融合在一起的颜色发生巨大变化,而如果三个通道的同时改变,却只会使最后的明暗发生变化,色调并不会产生巨大变化。 RGB TO HSV def rgb2hsv(r,..

Ken的博客 5478
上一篇: Photoshop Lightness Regulation Formula
下一篇: Shaders to regulate image lightness like in PhotoShop(shader实现Photoshop的亮度调节效果,按钮变暗效果)
SingingCoder
博客等级 码龄15年 9粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值