Example #1
0
def sart_wrapper(job):
    """
    Wrapper for multiprocessing.

    :param job:
    :return:
    """
    angles, sinogram =job
    return sart(sinogram,angles)
Example #2
0
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}
Example #3
0
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()