Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-01-24, 16:42   #1
dnping
高级会员
 
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24
dnping 是一个将要出名的人
默认

首先说明一下RGB的意思:
RGB=Red Green Blue
任何颜色都是这三种颜色的组合,因此这三种颜色称为原色,每种颜色表示范围是从0~255。
在计算机图像中,计算机用这三种颜色的组合表示颜色,但真正显示的却是像素,这个这里就不多讲了。
上面的patch命令是绘制多角图形,向量x,y中的每一对对应的点都代表这个多角形的顶点的坐标,而对应于向量c中的值就代表这个顶点坐标的颜色值,然后利用插值,将不同的每个顶点的颜色进行过渡。
比如上面的程序中,三角形最上方的顶点对应的颜色0,两个边角对应的颜色分别为-5和5,从而利用插值先从-5过渡到0,然后再从0过渡到5。
具体的算法是怎么样的,我也搞不大懂,令我很迷惑的就是为什么这么组合的时候,会产生一个颜色的谱图,而用单色显示的时候,比如说用下面的命令:
patch(x,y,5)
图片却是青色的,和下面的命令:
patch(x,y,0)
显示的颜色是一样的,而有时候却不一样,呵呵,上面就是我的解释,有用则采之……
dnping 当前离线   回复时引用此帖
旧 2008-01-24, 20:47   #2
暖阳三杯
初级会员
 
注册日期: 2008-01-24
年龄: 48
帖子: 10
声望力: 18
暖阳三杯 正向着好的方向发展
默认

引用:
作者: dnping 查看帖子
首先说明一下RGB的意思:
RGB=Red Green Blue
任何颜色都是这三种颜色的组合,因此这三种颜色称为原色,每种颜色表示范围是从0~255。
在计算机图像中,计算机用这三种颜色的组合表示颜色,但真正显示的却是像素,这个这里就不多讲了。
上面的patch命令是绘制多角图形,向量x,...
very very thank dnping!!
让我又有点明白了,
但是对于数值的具体含义还是迷糊的。
__________________
苦中作乐
暖阳三杯 当前离线   回复时引用此帖
旧 2008-01-24, 21:09   #3
dnping
高级会员
 
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24
dnping 是一个将要出名的人
默认

对于数值问题我现在也有点迷糊,因为对于matlab而言,RGB的范围是从0~255,而上面的程序是从-5~5,好像matlab是用的这样的算法:
-5处对应的颜色和5对应的颜色是一样的,也就是说,在-255~0范围内的颜色和在0~255内产生的颜色是一致的。
并且对于我的疑问,可能是由于0~255范围太大,用5来表示的颜色和0表示的颜色用肉眼判别不出来。
你如果用如下命令:

patch(x,y,0);
patch(x,y,10);
patch(x,y,20);
patch(x,y,30);
patch(x,y,40);
patch(x,y,50);
patch(x,y,70);
patch(x,y,100);
……
patch(x,y,200);
patch(x,y,255);

比较以上产生的图像的颜色,我们就可以明显感到了颜色的变化。
为什么
c=[-5;0;5]
就可以产生那些颜色变化,而且恰好是从-255--->0--->255,整个颜色范围都变化到了,我也不大明白。
呵呵,需要明白人讲一下算法了……
dnping 当前离线   回复时引用此帖
旧 2008-01-26, 22:46   #4
暖阳三杯
初级会员
 
注册日期: 2008-01-24
年龄: 48
帖子: 10
声望力: 18
暖阳三杯 正向着好的方向发展
默认

感谢版主的解答,我暂时放弃对数值的具体研究,而是将应力值代入c中;对其颜色的变化还在研究中,望有明白的朋友解释解释!!!
__________________
苦中作乐
暖阳三杯 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 10:55


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.