【问题标题】:Adding Color Maps to images in MATLAB在 MATLAB 中为图像添加颜色映射
【发布时间】:2019-01-12 05:34:40
【问题描述】:

这是一个相当入门级的问题,但我在 SO 或 Mathworks 帮助中找不到答案。

我想为正在加载的图像添加一个颜色条,然后将图像与创建的颜色条一起保存。

我正在寻找的结果与this page 上的图 1 类似,只是有一个图像而不是绘图,并且颜色条显示了图像中的强度范围。

页面让我觉得正在运行

colorbar(<trarget matrix>);

可以解决问题,但是当我尝试将其应用于图像时会引发错误。

所以我的问题是,我如何为我的图像制作一个颜色条,并且一旦制作了一个将两者连接起来保存的好方法。

我正在使用以下 sn-p 加载图像

IMGpath = 'barbaraSmall.png';
im = imread(IMGpath, 'png');
%
%colorbar(im); >>Throws an error
imshow(im);
imwrite(im, 'barabara_withMAP.png', 'png');

【问题讨论】:

    标签: matlab image-processing colormap


    【解决方案1】:

    您使用的语法是colorbar(target)。根据documentationtarget 是:

    “颜色条的目标,指定为 Axes 对象、PolarAxes 对象或具有 ColorbarVisible 属性的图形对象”。

    您正在输入一个图像矩阵 (im) 作为target,这不是上述对象。您只需输入:

    colorbar;
    

    或者如果你想给出一个轴的句柄,那么:

    colorbar(gca);
    

    您可以使用saveas 保存结果。

    saveas(gca, 'barabara_withMAP.png')
    

    【讨论】:

    • 我使用 gca 选项得到的结果是一个独立的通用颜色图(与图像无关)。此外,该命令不会在任何阶段将其链接到相关图像,也不会对图像进行操作以提取颜色图。
    • @ijuneja 它确实与它链接。如果您对此表示怀疑,请尝试使用灰度图像。即im=rgb2gray(imread(IMGpath, 'png'));你会看到
    • 我可能做错了。我是 MATLAB 的新手,我认为 gca 是将对象链接到轴的图形选项(纠正我!)。在序列中,这不是在任何地方调用 im
    • @ijuneja gca 返回显示 im 的当前坐标区的句柄。这就是它与im的关系
    • 感谢您的帮助和耐心等待。接受的答案。
    猜你喜欢
    • 2018-08-04
    • 2010-12-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多