如何在matlab中计算图像的中值、最小幅值

如何在matlab中计算图像的中值、最小幅值,matlab,image-processing,fft,ifft,Matlab,Image Processing,Fft,Ifft,我有一个图像,在我的作业中,我必须计算它的傅里叶变换,并用3个不同的值恢复它 具有最小的幅值 震级中值为25% 震级值百分比 我的主要照片是 然后运行我的脚本 I=imread('image number one.bmp'); gI=rgb2gray(I); imafft = fft2(single(gI)); % Gets magnitude and phase. mag = abs(imafft); phi = angle(imafft); % Generates the mod

我有一个图像,在我的作业中,我必须计算它的傅里叶变换,并用3个不同的值恢复它

  • 具有最小的幅值
  • 震级中值为25%
  • 震级值百分比
我的主要照片是

然后运行我的脚本

I=imread('image number one.bmp');
gI=rgb2gray(I);
imafft = fft2(single(gI));
% Gets magnitude and phase.
 mag = abs(imafft);
 phi = angle(imafft);
 % Generates the modified spectrum
 magvector=mag(:);
 myones=ones(size(mag));
 percent25 = prctile(magvector,25);
 minfft = min(magvector).*exp(i*phi);
 medianfft = myones .* median(magvector).*exp(i*phi);
 percentfft = myones.*percent25.*exp(i*phi);
 figure;
 subplot(131);
 imagesc(abs(ifft2(minfft)));
 title('with min of magnitude');
 subplot(132);
 imagesc(abs(ifft2(medianfft)));
 title('with median of magnitude');
 subplot(133);
 imagesc(abs(ifft2(percentfft)));
  colormap(gray);
 title('with 25 percentage of magnitude');

我的结果正确吗?恢复图像的最小值和中值以及25%的幅度彼此相似吗

我的主要问题是如何计算震级中值?


A非常感谢您的帮助

我想您可以尝试从这个线程中获得一些好处:@fpe我确实需要实现它,您知道我如何才能完成这项工作吗?