HSV (0 .. 255) to RGB (0 .. 255)
HSV (0 .. 255) to RGB (0 .. 255)
可能重复:
将RGB转换为HSV和将HSV转换为RGB的算法?
有人能解释一下当HSV值为0到255时如何将其转换为RGB吗?此外,
作为参考,我正在尝试用C++来做这件事。
在此处找到http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript
function hsvToRgb(h, s, v){
var r, g, b;
var i = Math.floor(h * 6);
var f = h * 6 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch(i % 6){
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return [r * 255, g * 255, b * 255];
}
编辑:
我曾经写过一个颜色选择器,并且曾经理解所有这些。当时,我看了看photoshop颜色选择器,试着在十字头发周围移动,观察hsv/rgb数字的变化,并弄清楚它们是如何工作的。在这种情况下,i
似乎定位主色,色调,指向它的点。色调的值实际上是循环中完全饱和颜色的程度,从红色开始,到红色结束。有一个三角形,每个点代表R、G和B,其中0度是R。在R和G之间是黄色,在R和B之间是品红色,在B和G之间,是青色。我们总共有6种颜色。这6种颜色的大小写从0到5。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- "no matching function for call to 'Vector::Vector'"错误
- vector<vector<double>> to mxArray using memcpy
- cpp rgb to yuv422 conversion
- HSV (0 .. 255) to RGB (0 .. 255)
- avcodec YUV to RGB