cabouman / mbircone

BSD 3-Clause "New" or "Revised" License
11 stars 9 forks source link

Use sinogram weights to calculate sino_indicator #46

Open dyang37 opened 3 years ago

dyang37 commented 3 years ago

Currently unweighted sinogram is used to calculate sino_indicator:

indicator = np.int8(sino > 0.05 * np.mean(np.fabs(sino)))

This would cause problem when "bad" values exist in sino (inf, nan etc.) Usually such case is handled by setting the associated sino weights to be 0 for the "bad" sino values. As a result we should also use weights when calculating the indicator in _sino_indicator function. Maybe a good start point is to try using the weighted sino.

dyang37 commented 3 years ago

There's a mirror issue in svmbir: https://github.com/cabouman/svmbir/issues/221

cabouman commented 3 years ago

Let me modify this. The potential problem is in the function `auto_sigma_prior(sino,delta_channel = 1.0,sharpness = 0.0 )``.

Should this function use the weighted sinogram?

If so, then we would need to modify auto_sigma_prior(), auto_sigma_x() , and auto_sigma_p() so they all take the weights as an input.