https://github.com/jyhmiinlin/pynufft
Tip revision: fd2bca8beca742517794bef0efb1f5014e494586 authored by Jyh-Miin Lin on 26 September 2020, 04:17:59 UTC
change the version to 2020.1.2
change the version to 2020.1.2
Tip revision: fd2bca8
test_3D_cpu.py
import numpy
import matplotlib.pyplot as pyplot
from matplotlib import cm
gray = cm.gray
def example_3D():
import pkg_resources
DATA_PATH = pkg_resources.resource_filename('pynufft', './src/data/')
image = numpy.load(DATA_PATH +'phantom_3D_128_128_128.npz')['arr_0'][0::2, 0::2, 0::2]
pyplot.imshow(numpy.abs(image[:,:,32]), label='original signal',cmap=gray)
pyplot.show()
Nd = (64,64,64) # time grid, tuple
Kd = (64,64,64) # frequency grid, tuple
Jd = (1,1,1) # interpolator
# om= numpy.load(DATA_PATH+'om3D.npz')['arr_0']
om = numpy.random.randn(15120,3)
print(om.shape)
from pynufft import NUFFT_cpu, NUFFT_hsa
NufftObj = NUFFT_cpu()
NufftObj.plan(om, Nd, Kd, Jd)
kspace =NufftObj.forward(image)
restore_image = NufftObj.solve(kspace,'cg', maxiter=200)
# restore_image1 = NufftObj.solve(kspace,'L1TVLAD', maxiter=200,rho=0.1)
#
restore_image2 = NufftObj.solve(kspace,'L1TVOLS', maxiter=200,rho=0.1)
pyplot.subplot(2,2,1)
pyplot.imshow(numpy.abs(image[:,:,32]), label='original signal',cmap=gray)
pyplot.title('original')
# pyplot.subplot(2,2,2)
# pyplot.imshow(numpy.abs(restore_image1[:,:,32]), label='L1TVLAD',cmap=gray)
# pyplot.title('L1TVLAD')
pyplot.subplot(2,2,3)
pyplot.imshow(numpy.abs(restore_image2[:,:,32]), label='L1TVOLS',cmap=gray)
pyplot.title('L1TVOLS')
pyplot.subplot(2,2,4)
pyplot.imshow(numpy.abs(restore_image[:,:,32]), label='CG',cmap=gray)
pyplot.title('CG')
# pyplot.legend([im1, im im4])
pyplot.show()
if __name__ == '__main__':
example_3D()