CERN / TIGRE

TIGRE: Tomographic Iterative GPU-based Reconstruction Toolbox
BSD 3-Clause "New" or "Revised" License
550 stars 182 forks source link

MLEM may cause extreme values on recon #379

Open daxiaojiupang opened 2 years ago

daxiaojiupang commented 2 years ago

Code to reproduce the problem (If applicable)

geo=defaultGeometry('nVoxel',[128;128;128]);

angles=linspace(0,2*pi,100); head=headPhantom(geo.nVoxel);

projections=Ax(head,geo,angles,'interpolated') noise_projections=addCTnoise(projections);

imgMLEM=MLEM(noise_projections,geo,angles,20)

plotImg(imgMLEM,'Dim','Z')

Specifications

When the MLEM algorithm is used to reconstruct the noise_projections ,the image cannot be reconstructed and is completely black. the image can be reconstructed by the projections.

AnderBiguri commented 2 years ago

MLEM works well, but there are few numerical values that are very large, thus hides the data when visualizing without bounds. If you do

plotImg(imgMLEM,'Dim','Z','clims',[0 1])

You will see that the result is good and there. Leave this issue open, as I think we should have better numerical stability for the edge cases, so it may need improving.

daxiaojiupang commented 2 years ago

Thanks a lot, the result is good.