TIGRE
TIGRE copied to clipboard
Allow different delta values (dx, dy, dz) for "Adaptive Weighted" algorithms?
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.
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
.