示例#1
0
def Ax(img, geo, angles, projection_type="Siddon", **kwargs):
    if img.dtype != np.float32:
        raise TypeError("Input data should be float32, not " + str(img.dtype))
    if not np.isreal(img).all():
        raise ValueError("Complex types not compatible for projection.")
    if any(img.shape != geo.nVoxel):
        raise ValueError(
            "Input data should be of shape geo.nVoxel: "
            + str(geo.nVoxel)
            + " not:"
            + str(img.shape)
        )
    geox = copy.deepcopy(geo)
    geox.check_geo(angles)
    """
    Here we cast all values in geo to single point precision float. This way we know what behaviour
    to expect from pytigre to Cuda and can change single parameters accordingly.
    """
    geox.cast_to_single()
    # geox.checknans()

    if kwargs.get("gpuids", None) is None:
        gpuids = GpuIds()
    else:
        gpuids = kwargs["gpuids"]

    return _Ax_ext(img, geox, geox.angles, projection_type, geox.mode, gpuids=gpuids)
示例#2
0
文件: Ax.py 项目: pavankuppa1/TIGRE
def Ax(img, geo, angles,  krylov="interpolated"):

    if img.dtype != np.float32:
        raise TypeError("Input data should be float32, not "+ str(img.dtype))
    if not np.isreal(img).all():
        raise ValueError("Complex types not compatible for projection.")
    geox = copy.deepcopy(geo)
    geox.check_geo(angles)


    if all(img.shape != geox.nVoxel):
        raise ValueError("Input data should be of shape geo.nVoxel: "+ str(geox.nVoxel) +
                         " not:" + str(img.shape))

    return _Ax_ext(img,geox,geox.angles,krylov,geox.mode)
示例#3
0
def Ax(img, geo, angles,  krylov="ray-voxel"):

    if img.dtype != np.float32:
        raise TypeError("Input data should be float32, not "+ str(img.dtype))
    if not np.isreal(img).all():
        raise ValueError("Complex types not compatible for projection.")
    geox = copy.deepcopy(geo)
    geox.check_geo(angles)
    """
    Here we cast all values in geo to single point precision float. This way we 
    know what behaviour to expect from pytigre to Cuda and can change 
    single parameters accordingly. 
    """
    geox.cast_to_single()
    geox.checknans()

    if all(img.shape != geox.nVoxel):
        raise ValueError("Input data should be of shape geo.nVoxel: "+ str(geox.nVoxel) +
                         " not:" + str(img.shape))

    return _Ax_ext(img, geox, geox.angles, krylov, geox.mode)