def sart_wrapper(job): """ Wrapper for multiprocessing. :param job: :return: """ angles, sinogram =job return sart(sinogram,angles)
def reconstruct_buzmakov(nang, size): dir_name = get_strorage_directory(size, nang) res_name = os.path.join(dir_name, 'reconst_buzmakov.txt') image_name = os.path.join(dir_name, 'reconst_buzmakov.png') if not (os.path.exists(res_name) and os.path.exists(image_name)): angles = np.arange(0, 180, 180.0 / nang, dtype='float32') sinogramm = np.loadtxt(os.path.join(dir_name, 'sinogramm.txt'), dtype='float32') res = sart(sinogramm, angles) np.savetxt(res_name, res) imsave(image_name, res, cmap=plt.cm.Greys_r) return {'image': image_name, 'res': res_name}
def test_sart(): size = 1024 angles = numpy.arange(0, 180, 1.0, dtype="float32") x = modified_shepp_logan((size, size, 3))[:, :, 1] x = numpy.array(x) sinogram, angles = genrate_sinogam_ref(x, angles) t = time.time() for i in range(32): res = sart(sinogram, angles) print "Tomographic reconstruction: " + str(time.time() - t) import pylab pylab.subplot(121) pylab.imshow(x) pylab.colorbar() pylab.subplot(122) pylab.imshow(res, vmin=0, vmax=1) pylab.colorbar() pylab.show()