SyneRBI / SIRF-Exercises

SIRF Training and demonstration material
http://www.ccpsynerbi.ac.uk
Apache License 2.0
17 stars 21 forks source link

PET/DIY_OSEM.py missing line in MLEM solution #236

Closed MargaretDuff closed 1 month ago

MargaretDuff commented 1 month ago

I think https://github.com/SyneRBI/SIRF-Exercises/blob/7a97fdea85cd24dce6c9fd3169be194c76d447ee/notebooks/PET/Solution_Snippets/DIY_OSEM_01_MLEM.py#L1-L9

should be

def MLEM(acquired_data, acq_model, initial_image, num_iterations):
    estimated_image = initial_image.clone()
    sensitivity = acq_model.backward(acquired_data.get_uniform_copy(1))
    for i in range(num_iterations):
        quotient = acquired_data/acq_model.forward(estimated_image)  # y / (Ax + b)
        quotient.fill(numpy.nan_to_num(quotient.as_array()))
        mult_update = acq_model.backward(quotient)/sensitivity         # A^t * quotient / A^t1
        mult_update.fill(numpy.nan_to_num(mult_update.as_array()))
        estimated_image*=mult_update
    return estimated_image
MargaretDuff commented 1 month ago

Closed by #237