社区
机器视觉
帖子详情
RGB 与HLS转换?//////////
lirengen10
2003-08-26 05:18:37
那位大哥有RGB与HLS转换的公式或函数,请告诉我.
...全文
402
4
打赏
收藏
RGB 与HLS转换?//////////
那位大哥有RGB与HLS转换的公式或函数,请告诉我.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
寻开心
2003-08-27
打赏
举报
回复
CXIMAGE里面提供了RGBTOHSL和hsltorgb的转换
寻开心
2003-08-27
打赏
举报
回复
统计+逐点计算快不了。
这里有一个快速算法,http://www.37c.com.cn/literature/analecta/data/swyxgcxzz/200002/014.html
lirengen10
2003-08-26
打赏
举报
回复
多谢,我想通过改变s的值来调节饱和度,我原来的算法是读出一个位图,取的r,g,b的值,转换成H,S,L,然后改变s值,再转换成r,g,b的值,但速度很慢,能否告诉我通过改变s的值直接改变r,g.b的值,或有别的算法改进速度。
寻开心
2003-08-26
打赏
举报
回复
/*
A Fast HSL-to-RGB Transform
by Ken Fishkin
from "Graphics Gems", Academic Press, 1990
*/
#include <math.h>
#include <stdio.h>
#include "GGems.h"
/*
* RGB-HSL transforms.
* Ken Fishkin, Pixar Inc., January 1989.
*/
/*
* given r,g,b on [0 ... 1],
* return (h,s,l) on [0 ... 1]
*/
void
RGB_to_HSL (r,g,b,h,s,l)
double r,g,b;
double *h, *s, *l;
{
double v;
double m;
double vm;
double r2, g2, b2;
v = MAX(r,g);
v = MAX(v,b);
m = MIN(r,g);
m = MIN(m,b);
if ((*l = (m + v) / 2.0) <= 0.0) return;
if ((*s = vm = v - m) > 0.0) {
*s /= (*l <= 0.5) ? (v + m ) :
(2.0 - v - m) ;
} else
return;
r2 = (v - r) / vm;
g2 = (v - g) / vm;
b2 = (v - b) / vm;
if (r == v)
*h = (g == m ? 5.0 + b2 : 1.0 - g2);
else if (g == v)
*h = (b == m ? 1.0 + r2 : 3.0 - b2);
else
*h = (r == m ? 3.0 + g2 : 5.0 - r2);
*h /= 6;
}
/*
* given h,s,l on [0..1],
* return r,g,b on [0..1]
*/
void
HSL_to_RGB(h,sl,l,r,g,b)
double h,sl,l;
double *r, *g, *b;
{
double v;
v = (l <= 0.5) ? (l * (1.0 + sl)) : (l + sl - l * sl);
if (v <= 0) {
*r = *g = *b = 0.0;
} else {
double m;
double sv;
int sextant;
double fract, vsf, mid1, mid2;
m = l + l - v;
sv = (v - m ) / v;
h *= 6.0;
sextant = h;
fract = h - sextant;
vsf = v * sv * fract;
mid1 = m + vsf;
mid2 = v - vsf;
switch (sextant) {
case 0: *r = v; *g = mid1; *b = m; break;
case 1: *r = mid2; *g = v; *b = m; break;
case 2: *r = m; *g = v; *b = mid1; break;
case 3: *r = m; *g = mid2; *b = v; break;
case 4: *r = mid1; *g = m; *b = v; break;
case 5: *r = v; *g = m; *b = mid2; break;
}
}
}
RGB
_To_
HLS
.rar_
HLS
_
HLS
色彩变换_
RGB
to H_
rgb
to
hls
_
rgb
转换
hls
公式
本程序用于
RGB
和
HLS
色彩模型的
转换
,对于图形学的初学者有一定的帮助
RGB
与
HLS
模型
转换
(论文&C程序)
RGB
与
HLS
模型
转换
一个简单的C程序,仅在数值上验证 论文有图片,使用画图等工具验证C程序
转换
正确
FFmpeg4.3开发系列之四:命令行实践与解析
三大命令行的选项分析:ffmpeg,ffplay,ffprobe 音视频流信息的分析 音视频的封装与解封装操作 音视频的编码与解码操作 字幕与水印的操作 音视频的各种特效操作 流媒体与直播的操作:rtp/rtcp/rtsp/
hls
(m3u8)/...
rgb
空间与
hls
空间的
转换
主要是利用matlab进行编程。编程的内容是关于
rgb
坐标空间与
hls
坐标空间的
转换
。
OpenCV+Python–
RGB
转HSI的实现
cv2.cvtColor函数封装了各种颜色空间之间的
转换
,唯独没有
RGB
与HSI之间的
转换
,网上查来查去也只有C++或MATLAB版本的,自己要用到python里,所以就写写python版本的。 HSI颜色模型是一个满足计算机数字化颜色管理...
机器视觉
4,446
社区成员
15,335
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章