2017-02-14 91 views
0

我正在學習本教程的FFT: https://www.mathworks.com/help/images/fourier-transform.html#f21-16704MATLAB官方文檔示例colormap函數不適用於imshow?

所以我嘗試了在matlab網站的例子。但是,頻域圖像是彩色地圖功能指定的灰度而不是彩色。我可以使它變得豐富多彩的唯一方法是用下面註釋掉的版本替換imshow函數。

爲什麼colormap函數在這種情況下不起作用?

f = zeros(30,30); 
f(5:24,13:17) = 1; 
imshow(f,'InitialMagnification','fit') 

figure; 
F = fft2(f); 
F2 = log(abs(F)); 
%imshow(F2,[-1 5],'InitialMagnification','fit','Colormap',jet(256)); % this works 
imshow(F2,[-1 5],'InitialMagnification','fit'); 
colormap(jet(256)); colorbar     % not work, gets greyscale image 
+0

我不能重現問題 - 它在我的機器上工作正常。難道你是在執行與你發佈的代碼不同的代碼嗎?例如:'imshow(F2,[ - 1 5],'InitialMagnification','fit'); colormap(jet(256)); colorbar; imshow(F2,[ - 1 5],'InitialMagnification','fit');' – Rotem

+0

請嘗試以下操作:在每個'imshow'(在同一代碼行)前添加'figure'命令如下:'figure; imshow(f,'InitialMagnification','fit')'...'figure; imshow(F2,[ - 1 5],'InitialMagnification','fit');'... – Rotem

回答

0

我認爲這是一個問題,你想要你的顏色映射軸。用下面的代碼替換最後一行。 gca指的是當前軸。

colormap(gca,jet(256)); colorbar 
+0

這是行不通的, 。但是,根據colormap函數的文檔:colormap(map)將當前圖的顏色映射設置爲map指定的顏色映射。除非分別設置座標軸顏色映射,否則圖形顏色映射會影響圖中的所有座標軸。所以我有點兒因爲它說「會影響所有軸」。 –

相關問題