Matlab 如何制作等光色块?

Matlab 如何制作等光色块?,matlab,Matlab,我想制作17个等照度灰色面片,我从黑色的RGB(0 0)开始(通过添加15)到白色的RGB(255),所以我将有17个灰色面片。我想让这些贴片发光。我有光度计和matlab软件,但我不知道如何制作这些贴片。请告诉我。如果你想要17个包裹,你不能按15步走。这将导致18个补丁(你可能不算0)或16,如果你既不算白色也不算黑色。我假设你想要全部18个 首先,构建面片向量: patches = repmat(0:15:255,3,1)'; %'// transpone to get the right

我想制作17个等照度灰色面片,我从黑色的RGB(0 0)开始(通过添加15)到白色的RGB(255),所以我将有17个灰色面片。我想让这些贴片发光。我有光度计和matlab软件,但我不知道如何制作这些贴片。请告诉我。

如果你想要17个包裹,你不能按15步走。这将导致18个补丁(你可能不算0)或16,如果你既不算白色也不算黑色。我假设你想要全部18个

首先,构建面片向量:

patches = repmat(0:15:255,3,1)'; %'// transpone to get the right format
接下来,将其转换为亮度/色度:

patches = rgb2ntsc(patches);
最后,为结果的亮度分量指定一些值:

patches(:,1) = mean(patches(:,1)); %// the mean luminance of all points.
patches(:,1) = patches(1,1); %// the luminance of white
patches(:,1) = 1; %// just 1

不过,您应该知道,不同的灰度只在亮度上有所不同。灰色的色度(色调和饱和度)为0。这意味着您的所有补丁将具有完全相同的颜色。考虑到这一点,有一种更简单的方法:

targetLuminance = 5; %// take any value here
patchesRGB = repmat(targetLuminance,17,3);
patchesYIQ = repmat([targetLuminance 0 0],17,1);

是的,有18个补丁。请你再解释一下好吗?你提到的所有评论都是matlab命令?我不是matlab的专业人士。是的,有18个补丁。请你再解释一下好吗?你提到的所有评论都是matlab命令?我对matlab不太专业。所有灰色背景的东西都是matlab代码,是的。什么是5和17,3和1英寸:TargetLightning=5;%//此处取任意值patchesRGB=repmat(目标照明,17,3);patchesYIQ=repmat([targetLuminance 0],17,1);这是矢量的维数,17个面片和3个色带(红-绿-蓝)。5是一个亮度的例子,你可以把你想要的任何亮度放在那里。我试过大小,但发现我真的不明白你想要做什么。你能补充更多的细节来描述你想要达到的目标吗?