示例#1
0
def test_astra_cuda_projector(space_and_geometry, use_cache):
    """Test ASTRA CUDA projector."""

    # Create reco space and a phantom
    reco_space, geom = space_and_geometry
    phantom = odl.phantom.cuboid(reco_space)

    # Make projection space
    proj_space = odl.uniform_discr_frompartition(geom.partition,
                                                 dtype=reco_space.dtype)

    # Forward evaluation
    projector = AstraCudaProjectorImpl(geom,
                                       reco_space,
                                       proj_space,
                                       use_cache=use_cache)
    proj_data = projector.call_forward(phantom)
    assert proj_data in proj_space
    assert proj_data.norm() > 0
    assert np.all(proj_data.asarray() >= 0)

    # Backward evaluation
    back_projector = AstraCudaBackProjectorImpl(geom,
                                                reco_space,
                                                proj_space,
                                                use_cache=use_cache)
    backproj = back_projector.call_backward(proj_data)
    assert backproj in reco_space
    assert backproj.norm() > 0
    assert np.all(proj_data.asarray() >= 0)
示例#2
0
def test_astra_cuda_projector(space_and_geometry, use_cache):
    """Test ASTRA CUDA projector."""

    # Create reco space and a phantom
    reco_space, geom = space_and_geometry
    phantom = odl.phantom.cuboid(reco_space)

    # Make projection space
    proj_space = odl.uniform_discr_frompartition(geom.partition,
                                                 dtype=reco_space.dtype)

    # Forward evaluation
    projector = AstraCudaProjectorImpl(geom, reco_space, proj_space,
                                       use_cache=use_cache)
    proj_data = projector.call_forward(phantom)
    assert proj_data in proj_space
    assert proj_data.norm() > 0
    assert np.all(proj_data.asarray() >= 0)

    # Backward evaluation
    back_projector = AstraCudaBackProjectorImpl(geom, reco_space, proj_space,
                                                use_cache=use_cache)
    backproj = back_projector.call_backward(proj_data)
    assert backproj in reco_space
    assert backproj.norm() > 0
    assert np.all(proj_data.asarray() >= 0)