網頁顏色演算法
A. opencv 紅色的rgb分別多少
光看RGB值很難把紅色提取出來,建議轉到HSV顏色空間。因為opencv 的H范圍是0~180,紅色的H范圍大概是
(0~8)∪(160,180)
S飽和度很重要,一般是大於一個值,S過低就是灰色(參考值S>80),
V就亮度,過低就是黑色,過高就是白色(參考值220>V>50)
PS:用cvCvtColor(src,dst,CV_BGR2HSV)即可轉換
B. RGB中x y z指的是什麼
RGB一般指Red,Green,Blue;是視頻信息中的3色;在電纜中,代表三條信號線;
x y z指的是相對應的(信號)地線,一般他們是共地線的;在電纜中,就是4根,三條信號線加一條地線;
僅供參考
C. 大家幫我寫個改變背景顏色的演算法,內有代碼
//完全按照你的意思來寫的
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class MyFrame extends JFrame implements ItemListener{
private Choice cho1;
private JPanel pan;
MyFrame(){
this.setBounds(100,100,300,300);
this.setAlwaysOnTop(true);
pan = new JPanel();
cho1=new Choice();
cho1.addItemListener(this);
cho1.add("綠色");
cho1.add("黃色");
cho1.add("淺藍色");
pan.add(cho1);
this.add(pan);
this.setVisible(true);
}
public static void main(String args[]){
new MyFrame();
}
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==cho1){
if(cho1.getSelectedItem()=="綠色"){
pan.setBackground(Color.GREEN);
}else if(cho1.getSelectedItem()=="黃色"){
pan.setBackground(Color.yellow);
}else if(cho1.getSelectedItem()=="淺藍色"){
pan.setBackground(Color.blue);
}
}
}
}
D. 求一個計算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;
}
}
}
E. 顏色代碼怎麼算
首先,你的問題和顏色沒關系,其實你需要了解的只是進制的問題
十六進制裡面,有十六個數字,因為人們常用的十進制只有0-9這10個符號,所以就用字母來代替10-15,所以就有了0-9A-F,這樣的話用兩位16進制數組合,是不是就有16*16=256種可能?
十進制的90=16*5+10,所以用十六進制就是5A
其實沒什麼演算法,0-F就是十進制的0-15,10-1F就是十進制的16-31,只不過十進制是逢十進一,十六進制是逢16進一
F. Rgb深色過渡到淺色的演算法是什麼我想用h5的canvas做一個煙花效果,有很多顏色,無論哪一種顏
rgba 4個數 用定時器逐漸變化值
G. 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)就是灰度圖了。
(7)網頁顏色演算法擴展閱讀
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位表示)表示對應各像素的顏色為:黑黑白白黑白黑白黑白白白。
H. 求js中顏色值變淺的演算法,類似於下圖
首先你的了解顏色的概念
下面我簡單介紹下顏色概念在32位系統上我們所看到的顏色由RGB三原色顯示再加上一個透明度通道就形成了多種多樣的顏色
多的我就不多說了下面直接寫一份演示代碼
<!DOCTYPEhtml>
<html>
<head>
<title>test</title>
<style>
.tsetDiv{
width:40px;
height:40px;
border-radius:100%;
font-size:0;
display:inline-block;
margin-left:10px;
vertical-align:middle;
}
#boxF{
width:300px;
font-size:0;
height:auto;
}
</style>
</head>
<body>
<divid="boxF"></div>
<scripttype="text/javascript">
varboxf=document.getElementById("boxF");
vardivC=null;
varr=0;
varg=0;
varb=0;
for(vari=0;i<10;i++){
for(varj=0;j<10;j++){
divC=document.createElement("div");
divC.style.backgroundColor="rgb("+r+","+g+","+b+")";
divC.setAttribute("class","tsetDiv");
boxf.appendChild(divC);
}
//修改rgb加的不同值可以得到不同的效果rgb最大值為255所以不用擔心超過不顯示
r+=15;
g+=25;
b+=35;
}
</script>
</body>
</html>
運行效果為下圖
I. 求js顏色轉換演算法
(function(d){function h(a,b,e){var c="rgb"+(d.support.rgba?"a":"")+"("+parseInt(a[0]+e*(b[0]-a[0]),10)+","+parseInt(a[1]+e*(b[1]-a[1]),10)+","+parseInt(a[2]+e*(b[2]-a[2]),10);d.support.rgba&&(c+=","+(a&&b?parseFloat(a[3]+e*(b[3]-a[3])):1));return c+")"}function f(a){var b;return(b=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(a))?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16),1]:(b=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(a))?[17*parseInt(b[1],16),17*parseInt(b[2],
16),17*parseInt(b[3],16),1]:(b=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a))?[parseInt(b[1]),parseInt(b[2]),parseInt(b[3]),1]:(b=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(a))?[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10),parseFloat(b[4])]:l[a]}d.extend(!0,d,{support:{rgba:function(){var a=d("script:first"),b=a.css("color"),e=!1;if(/^rgba/.test(b))e=!0;else try{e=b!=a.css("color","rgba(0, 0, 0, 0.5)").css("color"),
a.css("color",b)}catch(c){}return e}()}});var k="color backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor outlineColor".split(" ");d.each(k,function(a,b){d.Tween.propHooks[b]={get:function(a){return d(a.elem).css(b)},set:function(a){var c=a.elem.style,g=f(d(a.elem).css(b)),m=f(a.end);a.run=function(a){c[b]=h(g,m,a)}}}});d.Tween.propHooks.borderColor={set:function(a){var b=a.elem.style,e=[],c=k.slice(2,6);d.each(c,function(b,c){e[c]=f(d(a.elem).css(c))});var g=f(a.end);
a.run=function(a){d.each(c,function(d,c){b[c]=h(e[c],g,a)})}}};var l={aqua:[0,255,255,1],azure:[240,255,255,1],beige:[245,245,220,1],black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgrey:[169,169,169,1],darkgreen:[0,100,0,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkviolet:[148,0,211,1],fuchsia:[255,
0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lightblue:[173,216,230,1],lightcyan:[224,255,255,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,
0,1],transparent:[255,255,255,0]}})(jQuery);
J. photoshop中,
RGB目錄
RGB色彩模式
語法RGB
RGB格式
主要演算法
[編輯本段]RGB色彩模式
概述
RGB色彩模式是工業界的一種顏色標准,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標准幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。
RGB色彩模式使用RGB模型為圖像中每一個像素的RGB分量分配一個0~255范圍內的強度值。例如:純紅色R值為255,G值為0,B值為0;灰色的R、G、B三個值相等(除了0和255);白色的R、G、B都為255;黑色的R、G、B都為0。RGB圖像只使用三種顏色,就可以使它們按照不同的比例混合,在屏幕上重現16777216種顏色。
在 RGB 模式下,每種 RGB 成分都可使用從 0(黑色)到 255(白色)的值。 例如,亮紅色使用 R 值 246、G 值 20 和 B 值 50。 當所有三種成分值相等時,產生灰色陰影。 當所有成分的值均為 255 時,結果是純白色;當該值為 0 時,結果是純黑色。
應用
目前的顯示器大都是採用了RGB顏色標准,在顯示器上,是通過電子槍打在屏幕的紅、綠、藍三色發光極上來產生色彩的,目前的電腦一般都能顯示32位顏色,約有一百萬種以上的顏色。
原理
RGB是從顏色發光的原理來設計定的,通俗點說它的顏色混合方式就好像有紅、綠、藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和(兩盞燈的亮度嘛!),越混合亮度越高,即加法混合。
有色光可被無色光沖淡並變亮。如藍色光與白光相遇,結果是產生更加明亮的淺藍色光。知道它的混合原理後,在軟體中設定顏色就容易理解了。
紅、綠、藍三盞燈的疊加情況,中心三色最亮的疊加區為白色,加法混合的特點:越疊加越明亮。
紅、綠、藍三個顏色通道每種色各分為255階亮度,在0時「燈」最弱——是關掉的,而在255時「燈」最亮。當三色數值相同時為無色彩的灰度色,而三色都為255時為最亮的白色,都為0時為黑色。
RGB 顏色稱為加成色,因為您通過將 R、G 和 B 添加在一起(即所有光線反射回眼睛)可產生白色。 加成色用於照明光、電視和計算機顯示器。 例如,顯示器通過紅色、綠色和藍色熒光粉發射光線產生顏色。絕大多數可視光譜都可表示為紅、綠、藍 (RGB) 三色光在不同比例和強度上的混合。 這些顏色若發生重疊,則產生青、洋紅和黃。
[編輯本段]語法RGB
( red,green,blue )
參數red:integer類型,指定顏色中的紅色分量強度,有效值在0到255之間green:integer類型,指定顏色中的綠色分量強度,有效值在0到255之間blue:integer類型,指定顏色中的藍色分量強度,有效值在0到255之間返回值Long。函數執行成功時返回由指定分量確定的顏色,用長整數表示。發生錯誤時返回-1。如果任何參數的值為NULL,RGB()函數返回NULL。
用法RGB()函數使用下述公式計算表示顏色的長整數:65536 * Blue+ 256 * Green+ Red其中,Blue代表藍色分量,Green代表綠色分量,Red代表紅色分量。各分量中,數值越小,亮度越低,數值越大,亮度越高。例如,RGB ( 0, 0, 0 )為黑色(亮度最低),RGB ( 255, 255,255 )為白色(亮度最高)。
[編輯本段]RGB格式
對一種顏色進行編碼的方法統稱為「顏色空間」或「色域」。用最簡單的話說,世界上任何一種顏色的「顏色空間」都可定義成一個固定的數字或變數。RGB(紅、綠、藍)只是眾多顏色空間的一種。採用這種編碼方法,每種顏色都可用三個變數來表示-紅色綠色以及藍色的強度。記錄及顯示彩色圖像時,R GB是最常見的一種方案。但是,它缺乏與早期黑白顯示系統的良好兼容性。因此,件多電子電器廠商普遍採用的做法是,將RGB轉換成YUV 顏色空同,以維持兼容,再根據需要換回RGB格式,以便在電腦顯示器上顯示彩色圖形。
由於網頁(WEB)是基於計算機瀏覽器開發的媒體,所以顏色以光學顏色RGB(紅、綠、藍)為主。 網頁顏色是以16進制代碼表示,一般格式為#ZYZABC (字母用數字代替 )如黑色是三個顏色為0,在網頁代碼便是:#000000。當顏色代碼為#XXYYZZ時,可以用#XYZ表示,如#135與#113355表示同樣的顏色。
各種RGB格式
RGB1、RGB4、RGB8都是調色板類型的RGB格式,在描述這些媒體類型的格式細節時,通常會在BITMAPINFOHEADER數據結構後面跟著一個調色板(定義一系列顏色)。它們的圖像數據並不是真正的顏色值,而是當前像素顏色值在調色板中的索引。以RGB1(2色點陣圖)為例,比如它的調色板中定義的兩種顏色值依次為0x000000(黑色)和0xFFFFFF(白色),那麼圖像數據001101010111…(每個像素用1位表示)表示對應各像素的顏色為:黑黑白白黑白黑白黑白白白…。
¨ RGB565使用16位表示一個像素,這16位中的5位用於R,6位用於G,5位用於B。程序中通常使用一個字(WORD,一個字等於兩個位元組)來操作一個像素。當讀出一個像素後,這個字的各個位意義如下:
高位元組 低位元組
R R R R R G G G G G G B B B B B
可以組合使用屏蔽字和移位操作來得到RGB各分量的值:
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范圍0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范圍0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范圍0-31
¨ RGB555是另一種16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一個字讀出一個像素後,這個字的各個位意義如下:
高位元組 低位元組
X R R R R G G G G G B B B B B (X表示不用,可以忽略)
可以組合使用屏蔽字和移位操作來得到RGB各分量的值:
#define RGB555_MASK_RED 0x7C00
#define RGB555_MASK_GREEN 0x03E0
#define RGB555_MASK_BLUE 0x001F
R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范圍0-31
G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范圍0-31
B = wPixel & RGB555_MASK_BLUE; // 取值范圍0-31
¨ RGB24使用24位來表示一個像素,RGB分量都用8位表示,取值范圍為0-255。注意在內存中RGB各分量的排列順序為:BGR BGR BGR…。通常可以使用RGBTRIPLE數據結構來操作一個像素,它的定義為:
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; // 藍色分量
BYTE rgbtGreen; // 綠色分量
BYTE rgbtRed; // 紅色分量
} RGBTRIPLE;
¨ RGB32使用32位來表示一個像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是帶Alpha通道的RGB32。)注意在內存中RGB各分量的排列順序為:BGRA BGRA BGRA…。通常可以使用RGBQUAD數據結構來操作一個像素,它的定義為:
typedef struct tagRGBQUAD {
BYTE rgbBlue; // 藍色分量
BYTE rgbGreen; // 綠色分量
BYTE rgbRed; // 紅色分量
BYTE rgbReserved; // 保留位元組(用作Alpha通道或忽略)
} RGBQUAD。
[編輯本段]主要演算法
public void paint(Graphics g)
{
h.clearRect(0, 0, 370, 420);
h.setColor(Color.black);
h.drawLine(100, 100, 355, 100);
h.drawLine(100, 100, 100, 355);
h.drawLine(100, 355, 355, 355);
h.drawLine(355, 100, 355, 355);
h.drawLine(100, 100, 50, 150);
h.drawLine(355, 100, 305, 150);
h.drawLine(355, 355, 305, 405);
h.drawLine(100, 355, 50, 405);
h.drawLine(50, 150, 50, 405);
h.drawLine(50, 150, 305, 150);
h.drawLine(305, 150, 305, 405);
h.drawLine(50, 405, 305, 405);
h.setColor(Color.red);
h.fillOval(45, 400, 10, 10);
h.setColor(Color.green);
h.fillOval(350, 350, 10, 10);
h.setColor(Color.blue);
h.fillOval(95, 95, 10, 10);
h.setColor(Color.cyan);
h.fillOval(350, 95, 10, 10);
h.setColor(Color.magenta);
h.fillOval(45, 145, 10, 10);
h.setColor(Color.yellow);
h.fillOval(300, 400, 10, 10);
h.setColor(Color.black);
h.fillOval(95, 350, 10, 10);
h.drawOval(300, 145, 10, 10);
h.setColor(c);
int i = (90 + gc) - (int)(0.19600000000000001D * (double)rc);
int j = (345 - bc) + (int)(0.19600000000000001D * (double)rc);
h.fillRect(i, j, 20, 20);
h.setColor(Color.black);
h.drawRect(i, j, 20, 20);
g.drawImage(offimg, 0, 0, this);
g.setColor(Color.red);
g.setFont(fonsig);
g.drawString
}