From the documentation of SignedMaurerDistanceMapImageFilter, I was understanding that its perfectly valid to use output images of integral type. Quoting from the docs (emphasis mine):
To maintain integer arithmetic within the filter, the default output is the signed squared distance. This implies that the input image should be of type "unsigned int" or "int" whereas the output image is of type "int". Obviously, if the user wishes to utilize the image spacing or to have a filter with the Euclidean distance (as opposed to the squared distance), output image types of float or double should be used.
However I fail to compile when the output image type is not a floating point type. I think this is due to the following concept check:
|
itkConceptMacro(OutputImagePixelTypeIsFloatingPointCheck, (Concept::IsFloatingPoint<OutputPixelType>)); |
Am I doing something wrong? Is this supposed to work?
From the documentation of SignedMaurerDistanceMapImageFilter, I was understanding that its perfectly valid to use output images of integral type. Quoting from the docs (emphasis mine):
To maintain integer arithmetic within the filter, the default output is the signed squared distance. This implies that the input image should be of type "unsigned int" or "int" whereas the output image is of type "int". Obviously, if the user wishes to utilize the image spacing or to have a filter with the Euclidean distance (as opposed to the squared distance), output image types of float or double should be used.
However I fail to compile when the output image type is not a floating point type. I think this is due to the following concept check:
ITK/Modules/Filtering/DistanceMap/include/itkSignedMaurerDistanceMapImageFilter.h
Line 160 in 047fa69
Am I doing something wrong? Is this supposed to work?