reduce resolution of an MRI image

7 visualizaciones (últimos 30 días)
Mehri Mehrnia
Mehri Mehrnia el 13 de Oct. de 2023
Respondida: Walter Roberson el 14 de Oct. de 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 comentarios
Mehri Mehrnia
Mehri Mehrnia el 14 de Oct. de 2023
this is not scientific approach, there must be a reason behind it
Walter Roberson
Walter Roberson el 14 de Oct. de 2023
Why not use fftn and then ifftn specifying the desired output size?

Iniciar sesión para comentar.

Respuestas (2)

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

Walter Roberson
Walter Roberson el 14 de Oct. de 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)

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by