.Net色彩结构是否使用HSB或HSL色彩空间?
据我了解, hsl和hsb颜色空间都非常相似,都使用相同的0 0 -360色轮的色调和饱和度相同的0-1值.它们之间的一个区别是,在HSB模型中,您具有亮度,其中0是黑色,而1是完全强度的颜色,而在HSL中,您具有轻度/亮度,其中0仍然是黑色,但1是白色. .net Color struct使用RGB空间,但具有GetHue(),GetSaturation()和GetBrightness()函数. 这里的文档令人困惑.对于GetBrightness(): /// Gets the hue-saturation-brightness (HSB) brightness value for this /// System.Drawing.Color structure. 好,所以很有意义,.NET似乎正在使用HSB ... /// The brightness of this System.Drawing.Col
4 2024-01-03
编程技术问答社区
在RGB和HSB颜色值之间切换的算法
我读了这篇文章 algorithm在RGB和HSB颜色值之间切换 Type RGBColor Red As Byte Green As Byte Blue As Byte End Type Type HSBColor Hue As Double Saturation As Double Brightness As Double End Type Function RGBToHSB(rgb As RGBColor) As HSBColor Dim minRGB, maxRGB, Delta As Double Dim h, s, b As Double h = 0 minRGB = Min(Min(rgb.Red, rgb.Green), rgb.Blue) maxRGB = Max(Max(rgb.Red, rgb.Green), rgb.Blue) Delt
4 2023-11-14
编程技术问答社区
如何在UIImage上应用HSB颜色过滤器
我已经为UIImage着色项目而苦苦挣扎了几天. 这个想法是,该应用程序将登陆一组图像,这些图像我将不得不将其与从Web服务中检索到的值一起着色.如果您愿意,某种主题. 我与之合作的设计师给了我所有他的Photoshop值的背景图像. 第一个问题是Photoshop使用HSL,iOS使用HSB.因此,第一个挑战是翻译来自Photoshop的值. Photoshop HSL:-28(range -180 => +180),100(范围-100 => +100),25(range -100 => +100). 幸运的是,我在网上找到了一些代码,//adapted from https://gist.github.com/peteroupc/4085710 - (void)convertLightnessToBrightness:(CGFloat)lightness withSaturation:(CGFloat)saturation completion:(void
8 2023-11-03
编程技术问答社区
是否有将UIColor转换为色相饱和度亮度的功能?
我可以用rgb值设置uicolor: [UIColor colorWithRed:0.53 green:0.37 blue:0.11 alpha:1.00]; 我可以用HSB值设置uicolor: [UIColor colorWithHue:0.10 saturation:0.16 brightness:0.13 alpha:1.00]; 我也可以将其转换回RGB: CGFloat* colors = CGColorGetComponents(Color1.CGColor); 但是我如何从uicolor那里获得HSB? 解决方案 使用UIColor方法: getHue:saturation:brightness:alpha: 来自Apple文档: "返回构成HSB颜色空间中颜色的组件." - (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(
2 2023-11-03
编程技术问答社区
将RGBW颜色转换为标准的RGB/HSB表示法
我正在建立家庭自动化系统中的光管理接口.我设法控制了各种提供商的标准,并为各个问题提供了可调光的光线,但是现在我遇到了与RGB Light有关的问题. 我目前正在使用的灯是RGBW LED带 - 特别是,我正在使用低成本的RGBW灯:该灯由四个LED组成,每个LED都可以单独控制. 更加清楚 - 我正在研究一些C#代码,该代码应该检索当前选择的颜色并将其显示在UI中,并使用户能够为Light指定新颜色.要设置颜色并检索它,我必须使用命令提供商,使我能够通过Web服务发送和接收命令. 提供商使用RGBW颜色 - 使用红色,绿色,蓝色和白色的四个组件.为了表示我的接口上的当前浅色,我想将服务返回的RGBW颜色转换为更标准的RGB/HSB方案. 搜索网络,这是我发现的颜色转换的唯一参考(不包括RGB的C ++样本到RGBW转换,基于我的理解,必须有一些严重的错误),是本文显示了从HSI转换为RGBW的转换,这是我需要的倒数:我正在寻找有关如何实现这种转换的一些见解(或简
10 2023-08-11
编程技术问答社区
色彩理论:如何将Munsell HVC转换为RGB/HSB/HSL
我正在研究描述牙科中用来描述牙齿颜色的标准颜色的文档.他们引用 hue , value , chroma 值,并指出它们来自1905年的颜色描述: 颜色符号系统 由A. H. Munsell于1905年开发 用三个来识别颜色 属性:色调,价值(亮度) 和Chroma(饱和)[ 15 ] 色调(H):Munsell将色调定义为 我们区分一个质量 来自另一个的颜色.他选择了五个 原理颜色:红色,黄色,绿色, 蓝色和紫色;和五个 中级颜色:黄红色, 绿色黄色,蓝绿色,紫蓝色, 和红紫色.这些被放置了 在相等点的颜色圆周围 以及这些之间的颜色 点是两者的混合物 偏爱近点/颜色(请参阅 图1.). value(v):此表示法指示 颜色的浅色或黑暗 与中性灰度有关, 从绝对黑色延伸 (值符号0)至绝对白色 (值符号10).本质上是 颜色是多么"明亮". 色度(c):这表明程度 给定色调的分歧与 相同值的中性灰色.这 色度的比例从0延伸 中性灰色至10、12、14或更远, 取决
6 2023-08-11
编程技术问答社区
Objective-C RGB转HSB
假设我有颜色ff0000,它是红色的.找到较深的颜色很容易,我只是键入cc而不是FF,但是假设我拥有颜色AE83FC,这是一种复杂的颜色,我会如何自动找到它的更轻或更暗版本? 我认为这样做的简单方法是将我的RGB转换为HSB [色相,饱和,亮度] 我将如何在Objective-C中做到这一点? 假设我有一个RGB:1.0、0.0、0.0.那是红色. CGFloat r = 1.0; CGFloat g = 0.0; CGfloat b = 0.0; 我将如何将其转换为HSB,然后将颜色转换为返回RGB,我可以使用CGCONTEXTRGBSETFILLCOLOR? 有HSB功能吗? 请帮忙. :) 解决方案 首先,请注意,三个数字没有描述颜色,三个数字与Colorspace一起做. RGB不是色彩空间,而是所谓的颜色模型. RGB型号有很多色彩空间.因此(((1,0,0),SRGB)与((1,0,0),Adobe RGB)不同.您是否知道字符串编
20 2023-08-11
编程技术问答社区
Javascript将HSB/HSV颜色准确转换为RGB
我需要准确地将HSB转换为RGB,但我不确定如何解决将小数变成整数而无需舍入的问题.这是我从colorpicker库中拥有的当前功能: HSBToRGB = function (hsb) { var rgb = { }; var h = Math.round(hsb.h); var s = Math.round(hsb.s * 255 / 100); var v = Math.round(hsb.b * 255 / 100); if (s == 0) { rgb.r = rgb.g = rgb.b = v; } else { var t1 = v; var t2 = (255 - s) * v / 255; var t3 = (t1 - t2) * (h % 60) / 60; if (h == 360) h = 0;
30 2023-08-11
编程技术问答社区
HSB选色器
对于学校作业,我需要做这样的事情: ,但是由于我非常喜欢编码,所以我不知道该怎么办.我不太了解HSB.这是我的代码,也是我现在拥有的图片. void setup() { size(500,550); } void draw() { noStroke(); colorMode(HSB, 100); for (int i = 0; i
10 2023-06-15
编程技术问答社区
按HSV/HSB对颜色列表进行排序
我希望按照其HSV/HSB值对颜色进行排序.我想通过色调对它们进行排序,然后坐着,然后明亮.实际上,我需要的一种方法是一种方法,可以根据HSV的顺序判断一种颜色是"之前"或"之后"的,因为我只想在Java中进行compareTo()并使用Treeset进行订购.在Java中,HSV值全部存储为浮子. 我在这样的算法上很糟糕,因此任何帮助都将不胜感激! 解决方案 蛮力方式: public final class ColorComparator implements Comparator { @Override public int compare(Color c1, Color c2) { float[] hsb1 = Color.RGBtoHSB(c1.getRed(), c1.getGreen(), c1.getBlue(), null); float[] hsb2 = Color.RGBtoHSB(c2
36 2023-03-22
编程技术问答社区
HSB vs HSL vs HSV
我正在将颜色类作为C ++中非常基本的图形API的一部分.因此,我决定看一下Microsoft的.NET框架,并注意到他们的颜色类具有HSB的功能. 然后我开始了一项研究,以确定我应该在班上提供HSB,HSL还是HSV或全部. 所以,我在HSB,HSL,HSV上有3个问题: HSB与HSL相同? 如果不是,为什么没有HSBL甚至HSBLV? 我找到了许多不同的计算这些值的方法,有人可以向我展示最快的值吗? 解决方案 HSB与HSL相同? 否. HSB与HSV相同,但HSL不同.所有这些都用作表示RGB颜色的友好方式. HSL和HSV上的Wikipedia文章使用颜色圆柱体解释了差异: p> 基本上,HSB和HSL的色调相同,但饱和度具有不同的值,亮度和轻度也不同. 如果没有,为什么没有HSBL甚至HSBLV? 我不明白. HSB/HSV和HSL都可以代表任何RGB颜色.由于它们的定义方式,因此无法独立拥有B和L.给定的HSB亮
66 2023-03-18
编程技术问答社区
将HSB/HSV颜色转换为HSL
ho我是否将HSB颜色转换为HSL? Photoshop在其颜色选择器中显示HSB颜色. HSL颜色可以在CSS中使用. 我尝试了此JS: function hsb2hsl(h, s, b) { return { h: h, s: s, l: b-s/2 } } 但是hsb2hsl(0, 100, 50).l == 0而不是25 更新:我可以在不转换HSB→RGB→HSL? 的情况下这样做 解决方案 我恐怕缺乏JavaScript知识,但是您应该能够从 http://ariya.blogspot.com/2008/07/converting-bettine-between-hsl-hsl-and-hsv.html 其他解决方案 我认为这是最精确的: function hsv_to_hsl(h, s, v) { // both hsv and hsl values are in [0, 1] v
30 2023-03-18
编程技术问答社区
颜色(h,s,b)从360到0,从0到( | 360),从( | 360)到( | 720),以此类推。
我遇到了HSB颜色问题,不知道如何以正确的方式进行计算. 我在360和0之间具有颜色的色调,如果我从0 subtate -1我获得值-1而不是360.我想我已经对Modulo做了一些事情来获得正确的值?!因此,我的问题是将单元的倍数转换为0到360之间的数字.有人可以帮助我吗? 解决方案 负色值等于360 + value,这意味着-10等于350.要实现该行为: var val = -10; // or whatever your value is var hue = (val + 360) % 360 // --> 350 也可以正确地处理正值,val = 380-> hue = 20. 360在做%360之前. 我们可以将其包裹在方便的函数中,无论您输入什么都始终返回0至360之间的值: function adjustHue(val) { if (val
26 2023-01-29
编程技术问答社区
如何在OpenCV中设置HSV颜色范围?
我有一部手机,它是 HSV 直方图,我想跟踪这部手机的运动.根据它的直方图,我设置图像范围如下: greenLower = (300, 0, 50) greenUpper = (50, 128,250 ) cv2.inRange(hsv, greenLower, greenUpper) 但是挥动手机时什么都没有检测到,我很确定是因为颜色范围不对,你能告诉我如何正确设置颜色范围吗?特别是当HUE值在[300~50]之间时,我应该将它设置为(50~300)还是(300~50),因为HUE是一个圆圈. Phone HSV histogram: 解决方案 上下界设置错误,应该是: greenLower = (50, 0, 50) # Previously (300, 0, 50) greenUpper = (300, 128, 250) # Previously (50, 128,250) 还要确保 hsv = cv2.cvtColor(img,
186 2022-08-02
编程技术问答社区
将RGBW颜色转换为标准的RGB/HSB表示法
我正在为家庭自动化系统中的灯光管理构建一个界面.我设法为各种供应商控制标准开/关和可调光,几乎没有问题,但现在我遇到了与 RGB 灯相关的问题. 我目前使用的灯是 RGBW LED 灯条 - 具体来说,我正在使用低成本的 RGBW 灯:灯由四个 LED 组成,每个 LED 都可以单独控制.更清楚一点 - 我正在编写一些 c# 代码,它应该检索当前选择的颜色并将其显示在 UI 中,并使用户能够为灯光指定新颜色.为了设置颜色和检索颜色,我必须使用一个命令提供程序,它使我能够通过 Web 服务发送和接收命令. 提供程序使用 RGBW 颜色 - 使用红色、绿色、蓝色和白色的四个组件.为了在我的界面上表示当前的灯光颜色,我想将服务返回的 RGBW 颜色转换为更标准的 RGB/HSB 方案. 在网上搜索,我发现的唯一颜色转换参考(不包括用于 rgb 到 rgbw 转换的 c++ 示例,根据我的理解,它肯定有一些严重的错误)是这篇文章,它显示了从 HSI 到 RGBW 的转换,这与我
1340 2022-07-19
编程技术问答社区