matlab中使用colormap没有效果

在做数字图像处理实验的时候,需要将灰度图像做fft变换,显示其频谱图。代码如下:

clc, clear, close all
figure(1);
grayimg =imread('grayimg.jpg');
imshow(grayimg);
figure(2);
B=fftshift(fft2(grayimg));
imshow(log(abs(B)),[]);
colormap(jet(64));
colorbar;

按道理应该能得到一个彩色的频谱图,然而我得到的却是:
在这里插入图片描述
在这里插入图片描述
我的版本是R2016b,相同的代码在同学的R2018b上据说没遇到这个问题。

解决方法

Google到的一个相关讨论帖子

方法1

R2016b上可以,R2017a据说不可
就是把colormap(jet(64))改成了colormap(gca, jet(64))

clc, clear, close all
figure(1);
grayimg =imread('grayimg.jpg');
imshow(grayimg);
figure(2);
B=fftshift(fft2(grayimg));
imshow(log(abs(B)),[]);
colormap(gca, jet(64));
colorbar;

方法2

R2016b和R2017a都可

clc, clear, close all
figure(1);
grayimg =imread('grayimg.jpg');
imshow(grayimg);
figure(2);
B=fftshift(fft2(grayimg));
AxesH = axes;
imshow(log(abs(B)),[], 'Parent', AxesH);
colormap(AxesH, jet(64));
colorbar;

最后结果:
在这里插入图片描述

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Matlabcolormap函数用于设置当前图形的颜色映射。颜色映射是指将数据值映射到不同颜色的过程,这通常用于可视化科学数据。 colormap函数可以接受一个输入参数,用于指定颜色映射的名称或自定义的颜色映射。常用的颜色映射包括jet、hsv、hot、cool、spring、summer、autumn和winter。用户也可以自定义颜色映射,方法是创建一个n×3的矩阵,其每一行代表一种颜色,n为颜色数目。然后可以将这个矩阵作为输入参数传递给colormap函数。 使用colormap函数可以为图形添加配色方案,使得数据可视化更加生动、直观。例如,可以使用jet颜色映射将低值处的数据点映射到蓝色,高值处的数据点映射到红色,间值映射到绿色,从而更好地表现数据的分布规律。同时,也可以通过自定义颜色映射,将数据映射到更符合实际场景的颜色,增强数据分析的可信度。 ### 回答2: 在Matlabcolormap函数用于设置和获取作图时使用的颜色映射表。颜色映射表确定了如何将数据值映射到可视化效果上的颜色。 colormap函数通常与imshow、image、contourf等绘图函数一起使用。在使用时,可以通过colormap函数设置作图的颜色映射表。例如,将heatmap的颜色设置为热图,可以使用colormap(hot)。此外,Matlab还提供了许多预定义的颜色映射表,如gray、cool、jet等,用户可以根据需要选择。 除了设置颜色映射表,colormap函数还可以用于获取当前绘图的颜色映射表。通过调用colormap函数而不传入参数,可以获取当前使用的颜色映射表。返回的结果是一个矩阵,每一行代表一个颜色,其的数值表示红、绿、蓝三个颜色通道的强度。用户可以根据需要,通过该矩阵对颜色映射表进行自定义。 此外,colormap函数还可以用于设置图形对象的Colormap属性。例如,可以通过set(gcf,'Colormap',hot)将当前图形窗口的颜色映射表设置为热图。 综上所述,colormap函数是Matlab用于设置和获取作图颜色映射表的重要函数。通过该函数,用户可以根据需要选择预定义的颜色映射表,也可以自定义颜色映射表,实现更加个性化的可视化效果。 ### 回答3: 在Matlabcolormap函数用于设置和获取当前图形窗口的颜色映射表。颜色映射表是将数据值映射到颜色的一种方法,它决定了图像不同数值对应的颜色。 colormap函数可以使用预定义的颜色映射表,也可以使用自定义的颜色映射表。Matlab提供了一些预定义的颜色映射表,如'jet'、'hsv'、'gray'等。我们可以使用colormap('颜色映射表名称')来设置当前图形窗口使用某个预定义的颜色映射表。 此外,colormap函数还可以使用自定义的颜色映射表。我们可以使用一个包含RGB(红、绿、蓝)值的矩阵来定义自定义的颜色映射表。比如,我们可以创建一个n行3列的矩阵,每一行对应一个颜色,每一列对应RGB的值。然后使用colormap自定义的颜色映射表。例如,colormap(m),其m是我们定义的颜色矩阵。 在使用colormap函数之后,我们可以通过colorbar函数将颜色映射表添加到当前图形窗口的一侧。colorbar函数可用于表示颜色映射数值与颜色的对应关系。 colormap函数的另一个有用的功能是返回当前图形窗口的颜色映射表。通过使用cmap = colormap即可获得当前颜色映射表的RGB矩阵。 总之,colormap函数在Matlab用于设置和获取当前图形窗口的颜色映射表。它可以使用预定义的颜色映射表,也可以使用自定义的颜色映射表。使用colormap函数可以将颜色映射表添加到图像,并在需要时获取当前图形窗口的颜色映射表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值