reduce resolution of an MRI image

7 views (last 30 days)
Mehri Mehrnia
Mehri Mehrnia on 13 Oct 2023
Answered: Walter Roberson on 14 Oct 2023
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 Comments
Mehri Mehrnia
Mehri Mehrnia on 14 Oct 2023
this is not scientific approach, there must be a reason behind it
Walter Roberson
Walter Roberson on 14 Oct 2023
Why not use fftn and then ifftn specifying the desired output size?

Sign in to comment.

Answers (2)

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

Walter Roberson
Walter Roberson on 14 Oct 2023
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)

Products

Community Treasure Hunt

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

Start Hunting!