【问题标题】:Create a plot with a 2D colourmap depending on two variables根据两个变量创建具有 2D 颜色图的绘图
【发布时间】:2016-06-30 15:50:37
【问题描述】:

我想显示一个图像(例如imshow)并使用颜色图来表示我的数据点的值。

但是,colormap 仅提供依赖于单个变量的选项,但我想要一个依赖于两个变量的“2D 颜色图”。

例如,我有一个 2x2 像素的简单图像:

img = [

1 1 5 6;

1 2 8 7;

2 1 4 3;

2 2 15 3]

这里每行的前两个值是坐标,另外两个是描述像素的值(称它们为xy)。

在显示图像时,我想使用 2D 颜色图。例如像这样,它根据两个变量(xy)选择颜色:

MATLAB 中是否有一个选项可以做到这一点,可能在一个额外的工具箱中?

如果不能,可以手动完成吗?我想通过将第一个值给出的灰度图像覆盖在第二个值给出的颜色图图像上,可以实现类似的效果。

【问题讨论】:

    标签: matlab colors colormap


    【解决方案1】:

    在您的 2D 颜色图中,您实际上使用的是 HSV 颜色空间。

    基本上,您的 x 轴是色相,而 Y 轴是饱和度。如果适当缩放,您可以将任何值转换为该空间。如果您确保在 [0-1] 间隔中缩放第三和第四列,您可以轻松做到

    colorRGB=hsv2rgb([val3,val4,0.5]);
    

    如果你对每个像素执行这个操作,你会得到你想要的图像。

    我详细解释了 HSV 的工作原理here

    【讨论】:

    • 太好了,感谢您的快速回复和扩展解释:)我会尝试实现它。
    • @Johannes 如果您需要,可以问任何问题,;)。如果有效,请不要忘记接受答案为有效
    • 似乎正在工作 :) 我如何能够显示一个颜色条或更好地显示与我的值相对应的颜色圆柱切片?
    • @Johannes 你不能,默认情况下显示一个 2D 颜色条......除非你只是创建一个子图并绘制整个东西!
    • 好的,它也能正常工作。最后一个问题:由于我必须将我的值转换为 [0-1] 区间,所以颜色条是从 0 到 1。是否可以使用原始值与颜色条一起显示?
    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多