Open thewtex opened 2 years ago
Maurer is used the most, by a large margin. Some other filters are probably higher priority than the rest of distance transform filters. Matt could pitch in too.
There is now an upstream PR for a fast GPU-based 2D and 3D Euclidean distance transform in cuCIM (target for the August 2022 release). We still need to add support for the sampling
argument that lets pixel sizes be specified, but this is a good start toward SignedMaurerDistanceMapImageFilter
I think the API implemented there has to be called twice to give the signed version of the distance transform
signed_distance = distance_transform_edt(np.logical_not(image)) - distance_transform_edt(image)
@grlee77 we are looking at applying a more accurate distance transform in MSK applications:
https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology
If there is a cucim accelerated version, that could be a great story to tell.
CC @sbonaretti
Thanks @thewtex I will have to look at that parabolic morphology publication. It is not something we currently have implemented.
There are CUDA kernels in NPP for an "anti-aliased distance transform" for gray-scale images. I think this is a corresponding publication: https://www.sciencedirect.com/science/article/abs/pii/S0167865510002953.
This issue corresponds to the filters in this section? https://itk.org/Doxygen/html/group__ITKDistanceMap.html
SciPy's distance_transform_edt should match ITK's
SignedMaurerDistanceMapImageFilter
(its C source code mentions the same publication). That is one I had started to work on for the GPU as well (2D and 3D only, though) and could be contributed upstream to CuPy ascupyx.scipy.ndimage.distance_transform_edt
. We have also had other requests for that function in the past at the cuCIM repo, so I agree that getting that one completed is a high priority.Of the other distance transforms, do you have particular ones that are of higher relative priority?