Open yliu88au opened 2 years ago
This should be trivial to add, as the CUDA code already is prepared for this for SART-TV, I just don't pass the parameters.
For the rest, the same change would need to be added, i.e. when computing gradients, divide by voxel size: https://github.com/CERN/TIGRE/blob/master/Common/CUDA/tvdenoising.cu#L112
Just e.g. here: https://github.com/CERN/TIGRE/blob/master/Common/CUDA/POCS_TV.cu#L105
The most sensible way of doing it I think its to pass geo
as input to all these, and use geo.dVoxel
.
Currently, all version of "AW" algorithms have the same "delta" parameter controls the adaptive weight exp( -(xi-xj)^2/ delta) for all (x, y, z) directions. I can see the need to specify different "deltas" when the x, y, z axis have different resolutions (for example, some tomosynthesis situations). Could we make changes to allow this? We could allow delta to be either a scalar (likely current situation) or a array of (d1, d2, d3). Need some code changes in POCS_TV.cu and other places as well.