reduce resolution of an MRI image

7 次查看(过去 30 天)
to reduce the resolution of grayscale MRI image, I cut the sorrounding area of k-space(FFT of the image). the rsult I get is reasonable, however the values of matrix in the resolut is several times larger than the initial one. the initial(original) image is in [0,4091] while the resolt can go beyond 60,000. I guess I need to use a scaling but no idea?
function [k_space_volume_shrinked,fftshow_k_space_volume_shrinked,shrinked_LGE_volume]=...
compute_shrinked_k_space_3D_anisotropic(LGE_volume,shrinking_percentage)
org_size=size(LGE_volume)
%shrinking_percentage=[shrinking_percentage_X,shrinking_percentage_Y,shrinking_percentage_Z]
reduction=(shrinking_percentage./100).*org_size
start_point=round(reduction/2)
first_dimension= start_point(1,1):org_size(1,1)-start_point(1,1);
second_dimension=start_point(1,2):org_size(1,2)-start_point(1,2);
Third_dimension=start_point(1,3):org_size(1,3)-start_point(1,3) ;
k_space_volume=fftshift(fftn(LGE_volume));
k_space_volume_shrinked= k_space_volume(first_dimension,second_dimension,Third_dimension);
fftshow_k_space_volume_shrinked=log(1+abs(k_space_volume_shrinked));
%% shrinked k-space to image
shrinked_LGE_volume=abs(ifftn(k_space_volume_shrinked));
  2 个评论
Mehri Mehrnia
Mehri Mehrnia 2023-10-14
this is not scientific approach, there must be a reason behind it
Walter Roberson
Walter Roberson 2023-10-14
Why not use fftn and then ifftn specifying the desired output size?

请先登录,再进行评论。

回答(2 个)

dpb
dpb 2023-10-14
newimage=rescale(newimage,0,max(oldimage,'all'));
maybe???

Walter Roberson
Walter Roberson 2023-10-14
When you fft() a 1D signal, the first output bin is sum() of the 1D signal. Now, if you were to think about sum() of the signal divided by the number of elements in the signal, that would be the exact same as thinking about the mean() of the signal. When you ifft(), the rest of the frequency components are used to reconstruct the wave form, and then the first output bin divided by the length of the signal (the mean) is added to each element of the output signal.
Now suppose that you fft() and you discard some of the frequency components, and then you ifft() that without changing that first output bin. The length of the signal would be shorter, so first bin divided by the (new) length of the signal would be a larger value than the original so the output range would be more extreme than before (unless the mean of the 1D signal happened to be 0)

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by