我想显示图像(例如imshow
)并使用色彩图来表示我的数据点的值。
然而,colormap
仅提供依赖于单个变量的选项,但我想要一个" 2D色图"这取决于两个变量。
例如,我有一个2x2像素的简单图像:
img = [
1 1 5 6;
1 2 8 7;
2 1 4 3;
2 2 15 3]
这里每行的前两个值是坐标,另外两个是描述像素的值(称为x
和y
)。
显示图像时,我想使用2D色彩图。例如,像这样,根据两个变量(x
和y
)选择颜色:
MATLAB中是否有一个选项,可能是在一个额外的工具箱中?
如果没有,可以手动完成吗?我想通过将第一个值给出的灰度图像覆盖在第二个值给出的色彩图图像上,可以实现类似的效果。
答案 0 :(得分:1)
在2D色彩映射中,您实际上正在使用HSV色彩空间。
基本上,x轴是Hue,Y轴是饱和度。如果正确缩放,您可以将任何值转换为此空间。如果您确保在[0-1]
间隔内扩展第3和第4列,则可以轻松完成
colorRGB=hsv2rgb([val3,val4,0.5]);
如果对每个像素执行此操作,您将获得所需的图像。
我对HSV如何运作here
进行了扩展解释