Forum

Welcome Guest 

Show/Hide Header

Welcome Guest, posting in this forum requires registration.





Pages: [1]
Author Topic: Scaling of OSAMPEM with and without PSF
artm
Newbie
Posts: 2
Permalink
Post Scaling of OSAMPEM with and without PSF
on: April 30, 2013, 13:51
Quote

Hi,

I am trying to reconstruct a simple phantom (no noise, no attenuation). While the output "shape" looks reasonable the intensity of the pixels is about 50x lower than the values in the phantom.

Using et_demo_osem_2D. The values in simulated phantom have values around 30-40, but the reconstruction yields values in the 0-4 range. If the PSF is not included in the reconstruction (et_osmapem_step) then the reconstructed values are in the 0-2.5 range. If the PSF is included, the values are in 0-0.6 range.

I feel like there is some scaling factor that needs to be calculated and applied to the reconstructed images. The scaling seems to depend on original values in the phantom and on whether or not the PSF was included in the reconstruction.

Any help would be appreciated.

Thanks,
Arthur

Phantom profile
Image

Reconstruction, no PSF in et_osmapem_step
Image

Reconstruction, with PSF in et_osmapem_step
Image

spedemon
Administrator
Posts: 22
Permalink
Post Re: Scaling of OSAMPEM with and without PSF
on: May 1, 2013, 19:34
Quote

Hi Arthur,

et_demo_osem_2D.m simulates a simple PET scan of a phantom object and then reconstructs it. The code in et_demo_osem_2D.m does the following:

1) create the phantom
2) simulate the PET acquisition (project the phantom and add noise)
3) reconstruct iterativelly with OSEM

In step 2), the sinogram is normalised before adding the Poisson noise: it is divided by its integral sum and multiplied by N_counts. This normalisation sets the number of expected counts to N_counts and is only relevant if you add the Poisson noise.
In your experiment you probably commented out the line where the Poisson noise is applied, bur left the normalisation uncommented. If you do not intend to add noise, just comment out the normalisation. If you plan to apply the Poisson noise, just normalise the reconstruction by the same factor that is applied is step 2): N_counts/sum(sum(sum(et_project(phantom,..)))).
Regarding the dependence on the PSF, make sure that et_project() in step 1) and in step 3) have the same PSF.

artm
Newbie
Posts: 2
Permalink
Post Re: Scaling of OSAMPEM with and without PSF
on: May 2, 2013, 13:19
Quote

Thank you! It now works for when the PSF in Step 1) and 3) is the same. What about the case where I want to apply a PSF in step 1) ONLY, to simulate the smoothing effect induced by the scanner. There are times when we do not want to use PSF in the reconstruction. Then the values in the reconstruction of step 3) will be scaled improperly. Is it best to apply a filter to the phantom manually before projecting to a sinogram? Or some way to calculate the scaling factor?

spedemon
Administrator
Posts: 22
Permalink
Post Re: Scaling of OSAMPEM with and without PSF
on: May 2, 2013, 14:29
Quote

When the model for reconstruction does not match the characteristics of the scanner, scaling becomes an issue. The mismatch between the true characteristics of the scanner and the model of the scanner utilised for the reconstruction constitutes ultimately one of the challenges of quantitative imaging.

The reasons for the mismatch are the non perfect characterisation of the scanner and the use of simplified, computationally efficient, models of the imaging process, such as the ideal projector/back-projector (no PSF) and the projector/back-projector with depth-dependent point-spread function (PSF) implemented in NiftyRec.

With synthetic data, e.g., if the projector used to simulate the acquisition has depth-dependent PSF, there does not exist a normalisation factor that scales correctly the reconstruction obtained with the ideal line-integral model. You can proceed as one does when tuning a scanner: A) create a simple phantom with a large uniform area of activity: 'activity_tune_phantom'; you can use the function et_spherical_phantom for this purpose. B) Simulate a noiseless scan, reconstruct with the mismatched model (i.e., in your case, no PSF), measure the activity e.g. at the centre of the uniform region: 'activity_tune_reconstruction'. C) Use the normalisation 'activity_tune_phantom/activity_tune_reconstruction' when reconstructing other objects. If the simulation in C) is with noise, you will have to also divide by (N_counts/sum(sum(sum(et_project(phantom,..))))), as described in the previous post.

Pages: [1]
Mingle Forum by cartpauj
Version: 1.0.34 ; Page loaded in: 0.056 seconds.
{lang: 'en-GB'}