Field of View (FOV) and Resolution#
The image we create is fundamentally defined by the field-of-view (FOV) and spatial resolution captured. These are determined by our k-space sampling pattern.
Learning Goals#
Describe how images are formed
Describe what determines the image FOV and resolution
Manipulate MRI sequence parameters to improve performance
Manipulate the gradients and k-space sampling to change the FOV and resolution
% setup MRI-education-resources path and requirements
cd ../
startup
Cell In[1], line 2
cd ../
^
SyntaxError: invalid syntax
Field-of-View (FOV)#
The FOV is determined by the sample spacing in k-space, with the simple relationship based on the sample spacing, \(\Delta k\) as:
For example, \(FOV_{x} = \frac{1}{\Delta k_x}\)
% rectangular object to demonstrate FOV
N = 256;
kx = [-N/2+1:N/2]/N;
N_rect = N/4;
kdata = sinc(kx *N_rect).' * sinc(kx *N_rect);
rect_recon = ifft2c(kdata);
subplot(221)
imagesc(log(abs(kdata)), [0 max(log(abs(kdata(:)))))
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon), [0 max(abs(rect_recon(:)))])
colormap(gray), axis equal tight off
title('Full FOV')
kdata2 = kdata;
kdata2(1:2:end,:) = 0;
kdata2(:,1:2:end) = 0;
rect_recon2 = ifft2c(kdata2);
figure
subplot(221)
imagesc(log(abs(kdata2)), [0 max(log(abs(kdata2(:))))])
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon2), [0 max(abs(rect_recon2(:)))])
colormap(gray), axis equal tight off
title('Doubled \Delta k, Half FOV')
kdata3 = kdata;
kdata3(1:3:end,:) = 0;
kdata3(2:3:end,:) = 0;
kdata3(:,1:3:end) = 0;
kdata3(:,2:3:end) = 0;
rect_recon3 = ifft2c(kdata3);
figure
subplot(221)
imagesc(log(abs(kdata3)), [0 max(log(abs(kdata3(:))))])
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon3), [0 max(abs(rect_recon3(:)))])
colormap(gray), axis equal tight off
title('Tripled \Delta k, One Third FOV')
Spatial Resolution#
The spatial resolution is determined by the maximum sample extent in k-space, with the simple relationship based on the maximum k-space sample locations, \(k_{max}\) as:
For example, \(\delta_x = \frac{1}{2 k_{x,max}}\)
% rectangular object to demonstrate resolution
N = 256;
kx = [-N/2+1:N/2]/N;
N_rect = N/2;
kdata = sinc(kx *N_rect).' * sinc(kx *N_rect);
rect_recon = ifft2c(kdata);
subplot(221)
imagesc(log(abs(kdata)), [0 max(log(abs(kdata(:))))])
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon), [0 max(abs(rect_recon(:)))])
colormap(gray), axis equal tight off
title('Full Resolution')
kdata4 = kdata;
kdata4([[1:3*N/8],[5*N/8+1:N]],:) = 0;
kdata4(:,[[1:3*N/8],[5*N/8+1:N]]) = 0;
rect_recon4 = ifft2c(kdata4);
figure
subplot(221)
imagesc(log(abs(kdata4)), [0 max(log(abs(kdata4(:))))])
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon4), [0 max(abs(rect_recon4(:)))])
colormap(gray), axis equal tight off
title('1/4 k_{max}, 4x voxel size')
kdata8 = kdata;
kdata8([[1:7*N/16],[9*N/16+1:N]],:) = 0;
kdata8(:,[[1:7*N/16],[9*N/16+1:N]]) = 0;
rect_recon8 = ifft2c(kdata8);
figure
subplot(221)
imagesc(log(abs(kdata8)), [0 max(log(abs(kdata8(:))))])
colormap(gray), axis equal tight off
subplot(222)
imagesc(abs(rect_recon8), [0 max(abs(rect_recon8(:)))])
colormap(gray), axis equal tight off
title('1/8 k_{max}, 8x voxel size')