STIR icon indicating copy to clipboard operation
STIR copied to clipboard

Listmode reconstruction with bin normalisation causes rotation of image xy for data but not sensitivity

Open robbietuk opened this issue 5 years ago • 1 comments

List mode reconstruction using OSMAPOSL using data from Gate in root file format can cause a rotation in x-y from the sensitivity image. This occurs even if the sensitivy image is not recomputed. From debugging, if the Bin Normalisation is removed, the sensivitiy and root data are aligned.

Gate simulations using a D690 scanner lead to a small detector offset between Gate and STIR. This is corrected in the hroot file with: offset (num of detectors) := -4. Unlisting the root data using lm_to_projdata leads to correctly alligned reconstructions.

I have computed the attenuation correction with calculate_attenuation_coefficients --ACF my_norm output/simple_cylinder_1-MuMap.hv ../D690_full.hs, which is also the normalisation for this data that contains no scatter/randoms, using STIR.

Sinogram reconstructions using the unlisted data and this norm produce desirable image and a sensitivity image that takes into account the attenuation corrections.

List mode reconstruction: Using the following parameter file, the reconstructed images contain a rotation in x-y, where the sensitivity (attenuation correction) is not rotated leading to regions of the same object not overlapping. Note here, the sensitivity is not recomputed but I use the sinogram produced sensitivity image.

If the Bin Normalisation parameters are removed then the backprojection activity and attenuation corrections match.

;LISTMODE RECONSTRUCTION PARAMETER FILE
OSMAPOSLParameters := 
objective function type:=  PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin
PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin Parameters:= 
	
  list mode filename := ../output/root_data_merged_12.hroot

	projector pair type := Matrix
  ;Projector Pair Using Matrix Parameters :=
  Matrix type := Ray Tracing
  Ray tracing matrix parameters :=
   number of rays in tangential direction to trace for each bin := 10
   do symmetry 90degrees min phi := 0
   do symmetry 180degrees min phi := 0
  End Ray tracing matrix parameters :=
  ;End Projector Pair Using Matrix Parameters :=

  Bin Normalisation type := from projdata
    Bin Normalisation From ProjData :=
    normalisation projdata filename:= ../my_norm.hs
    End Bin Normalisation From ProjData:=

	;num_events_to_use := 100
	recompute sensitivity := 0
	use subset sensitivities:= 0
	sensitivity filename:=  my_sensitivity_200.hv
	zoom :=  1
  xy output image size (in pixels) := 200
  
  prior type := RelativeDifference
  Relative Difference Prior Parameters:=
  penalisation factor := 0.1
  only 2D:= 0
  gamma value := 2
  END Relative Difference Prior Parameters:=

end PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin Parameters:= 
number of subsets:= 4
number of subiterations:= 4
save estimates at subiteration intervals:= 1

write update image := 0

output filename prefix := my_IMAGE_LM
END := 

robbietuk avatar Oct 23 '19 14:10 robbietuk

This may not still be an issue since #181 was merged. Would need testing

robbietuk avatar Sep 27 '21 23:09 robbietuk