Я учусь FFT из этого учебника: https://www.mathworks.com/help/images/fourier-transform.html#f21-16704MATLAB Официальная функция colocap в документе doc не работает для imshow?
Так что я попробовал пример на веб-сайте в MATLAB. Тем не менее, изображение частотной области является оттенком серого, а не цветным, как определено функцией colormap. Единственный способ, которым я мог бы сделать это красочным, - это заменить функцию 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
Я не могу воспроизвести проблему - она отлично работает на моей машине. Может быть, вы выполняете другой код, чем код, который вы опубликовали? Например: 'imshow (F2, [- 1 5], 'InitialMagnification', 'fit'); colormap (jet (256)); colorbar; imshow (F2, [- 1 5], 'InitialMagnification', 'fit'); ' – Rotem
Попробуйте следующее: добавьте команду' figure' перед каждым 'imshow' (в той же строке кода) следующим образом:' figure; imshow (f, 'InitialMagnification', 'fit') '...' figure; imshow (F2, [- 1 5], 'InitialMagnification', 'fit'); '... – Rotem