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

 我来答
百度网友9308069
2012-01-13 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1922万
展开全部

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

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

=====

import java.applet.Applet;

import java.awt.Color;

import java.awt.Graphics;

public class Test extends Applet{

private static final long serialVersionUID=1802199483736051124L;

public int num_of_colors;

@Override

public void init(){

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

}

@Override

public void paint(Graphics g){

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

int col_w=getWidth()/row_max;

int x=0,y=0;

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

int c=0;

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

g.setColor(new Color(c));

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

c+=cd;

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

x=0;

y+=col_w;

}else x+=col_w;

}

}

}

追问
颜色差最大的意思是,人眼能够很容易地分别开这100个颜色,像你这样的计算方法我做过实验,颜色会出现很多区分不开的。
谢谢你。
追答
人眼感觉色差大,用假色即可。任何颜色之间插个假色块。视觉反差是最大的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式