导航:首页 > 源码编译 > rgb颜色识别算法

rgb颜色识别算法

发布时间:2022-08-09 10:32:24

‘壹’ RGB与CMYK有什么具体的区别

RGB与CMYK的主要区别如下:

1、定义不同

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,这个标准几乎包括了人类视力所能感知的所有颜色;

CMYK是印刷四色模式,是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。

2、原色不同

RGB的原色包括:红(R)、绿(G)、蓝(B)三个颜色;

CMYK的原色包括:Cyan =青色,又称为‘天蓝色’,‘湛蓝’、M:Magenta =品红色,又称为‘洋红色’;Y:Yellow = 黄色;K:blacK=黑色等四个颜色。

3、原理不同

RGB的原理:颜色发光;

CMYK的原理:颜色反光或反射。

‘贰’ 求一个计算RGB颜色值的算法,色差要尽量大,从黑色到白色之间可以计算出来100个以上颜色,尽量用C++

在RGB颜色模型下,要100个颜色设一个变量从0到0x1000000之间分成100递增即可,颜色差值最大。

javaapplet最简演示,附图。从黑到白100个颜色块

=====

importjava.applet.Applet;

importjava.awt.Color;

importjava.awt.Graphics;

publicclassTestextendsApplet{

=1802199483736051124L;

publicintnum_of_colors;

@Override

publicvoidinit(){

num_of_colors=100;//如果要多可以设得更多

}

@Override

publicvoidpaint(Graphicsg){

introw_max=(int)Math.sqrt(num_of_colors);

intcol_w=getWidth()/row_max;

intx=0,y=0;

intcd=(int)(0x1000000L/num_of_colors);

intc=0;

for(intn=0;n<num_of_colors;n++){

g.setColor(newColor(c));

g.fillRect(x,y,col_w,col_w);

c+=cd;

if(n%row_max==0&&n>0){

x=0;

y+=col_w;

}elsex+=col_w;

}

}

}

‘叁’ rgb色彩模式中r的值的大小是如何定义的

的算法描述。
步骤1:把RGB值转成中数值。

步骤2:找出R,G和B中的最大值。

步骤3:设L=(maxcolor + mincolor)/2

步骤4:如果最大和最小的颜色值相同,即表示灰色,那么S定义为0,而H未定义并在程序中通常写成0。

步骤5:否则,测试L:
If L<0.5, S=(maxcolor-mincolor)/(maxcolor + mincolor)
If L>=0.5, S=(maxcolor-mincolor)/(2.0-maxcolor-mincolor)

步骤6: If R=maxcolor, H=(G-B)/(maxcolor-mincolor)
If G=maxcolor, H=2.0+(B-R)/(maxcolor-mincolor)
If B=maxcolor, H=4.0+(R-G)/(maxcolor-mincolor)

步骤7:从第6步的计算看,H分成0~6区域。RGB颜色空间是一个立方体而HSL颜色空间是两个六角形锥体,其中的L是RGB立方体的主对角线。因此,RGB立方体的顶点:红、黄、绿、青、蓝和品红就成为HSL六角形的顶点,而数值0~6就告诉我们H在哪个部分。H=H*60.0,如果H为负值,则加360。

‘肆’ 颜色空间RGB与 色调、饱和度、亮度(ESL)转换的完整C语言算法

你把0-240 按比例 缩放 一下 到 HSL 的 范围,用 HSL-RGB 转换。

HSL--H是色相(0到360度),S是饱和度(0到1),L是亮度(0到1)

规1化的 HSL到RGB颜色值算换子程序:
// nomorized h,s,L 0-1.0
void HSL2RGB(double h, double s, double L,unsigned char *rr, unsigned char *gg,
unsigned char *bb)
{
double v,m,sv, vs0, c1, c2,xiaoshu,r,g,b;
int ih;
r = L; g = L;b = L;
if (L <= 0.5) v = L * (1.0 + s); else v = L + s - L * s;
if (v > 0) {
m = L + L - v; sv = (v - m ) / v;
h = h * 6.0; ih = (int)h;
xiaoshu = h - ih;
vs0 = v * sv * xiaoshu; c1 = m + vs0; c2 = v - vs0;
switch (ih) {
case 0: r = v; g = c1; b = m; break;
case 1: r = c2; g = v; b = m; break;
case 2: r = m; g = v; b = c1; break;
case 3: r = m; g = c2; b = v; break;
case 4: r = c1; g = m; b = v; break;
case 5: r = v; g = m; b = c2; break;
default: break;
}
}
*rr = (int) (r * 0xff); *gg = (int) (g * 0xff); *bb = (int) (b * 0xff);
}

把你3个数值,各除以240,代入子程序即可。
详见:http://hi..com/svjvcfwticdkmse/item/e6c43a21e385b10977272c0e
彩虹光谱RGB值自动生成程序 (L_o_o_n_i_e == 金色潜鸟)

‘伍’ RGB中x y z指的是什么

RGB一般指Red,Green,Blue;是视频信息中的3色;在电缆中,代表三条信号线;
x y z指的是相对应的(信号)地线,一般他们是共地线的;在电缆中,就是4根,三条信号线加一条地线;

仅供参考

‘陆’ 纯色在RGB空间里面的位置是什么纯色的RGB算法是什么

纯色在色坐标上很容易找到, 这个你需要网络"1931xy色坐标绘制".
另外,你对纯色有一定的误解.
在RGB上, 也就是你希望得到(xxx,xxx,xxx) 这种类型是不行的.
所谓的(255,255,0)并不是指的纯色黄色光, 它指的是你的电脑显示器的像素中 R像素和G像素最大亮度时混合而成的黄光, 用专业的光学来解释也就是说: 这时得到的黄色仅仅是在你显示器的色域R,G两点连线的边上. 并非是所谓的对应单一的波长的黄光.
简单来说,也就是你所谓的RGB空间其实是指你显示器的色域空间, 要确定这个色域空间的颜色坐标需要先将R,G,B 三色画面的坐标(x,y)以及亮度(L)利用光学仪器测出, 然后利用三角形原理即可算出所有坐标.

‘柒’ 两种颜色混合rgb怎么计算

取决于混色方式。例如按最常用的不透明度计算,每个通道的计算公式是α*A+(1-α)*B,其中A、B分别是两个色层同一通道的灰度值,A层在B层之上。α是A色层的不透明度。

‘捌’ 25%的灰度RGB是多少

25%的灰度RGB(25,25,25)。

灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图像,它的像素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图像,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。

彩色图像的灰度其实在转化为黑白图像后的像素值(是一种广义的提法),转化的方法看应用的领域而定,一般按加权的方法转换,R, G,B 的比一般为3:6:1。

任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,可以通过下面几种方法,将其转换为灰度:

1、浮点算法:Gray=R*0.3+G*0.59+B*0.11

2、整数方法:Gray=(R*30+G*59+B*11)/100

3、移位方法:Gray =(R*77+G*151+B*28)>>8;

4、平均值法:Gray=(R+G+B)/3;

5、仅取绿色:Gray=G;

通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

(8)rgb颜色识别算法扩展阅读


RGB格式:

对一种颜色进行编码的方法统称为“颜色空间”或“色域”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。

RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。

但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成YUV颜色空间,以维持兼容,再根据需要换回RGB格式,以便在电脑显示器上显示彩色图形。

网页格式:

由于网页(WEB)是基于计算机浏览器开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。网页颜色是以16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 );

如黑色,在网页代码中便是:#000000(在css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。

RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。

以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白。

‘玖’ 详细请教:关于十进制RGB颜色值转换十六进制颜色值的算法

把十六进制的数前面加0补成长度为6的数,然后前两位化成十进制数代表红色,中间两位化成十进制数代表绿色,最后两位化成十进制数代表蓝色。如&FFFF,先变成00FFFF,于是等于RGB(0,255,255)

网上还有专门的颜色值运算器,要是嫌计算麻烦,就下一个用吧~~~

阅读全文

与rgb颜色识别算法相关的资料

热点内容
程序员那么可爱z漫画 浏览:392
置业顾问解压是啥意思 浏览:135
java文档怎么写 浏览:361
通信工程pdf 浏览:990
app获取手机账户是什么意思 浏览:968
程序员的墓地 浏览:587
怎样用命令生成指定的方块 浏览:122
可以定制ai男友的app叫什么 浏览:553
linux服务器ftp命令 浏览:530
华为文件夹软件怎么放大 浏览:853
单片机倒计时交通灯 浏览:639
安卓hint属性什么意思 浏览:382
安卓如何安装平板微信 浏览:854
日产pdf 浏览:454
pdf西综 浏览:586
pythonrfm 浏览:563
exe怎么反编译 浏览:267
大龄程序员考试 浏览:351
如何加密防盗 浏览:394
matlab终止命令 浏览:603