The GPU kernel implemented for morphology.reconstruct uses float64 internally. There is an edge case where not all integer values in int64 or uint64 range can be represented exactly in float64. It is possible that large values with a small difference could round to the same floating point value after type cast.
In practice I don't think use of 64-bit integer image types is common, but it would be good to resolve the issue for completeness.
This issue would also apply to morphology.h_minima and morphology.h_maxima as well since they use this function internally.
The GPU kernel implemented for
morphology.reconstructuses float64 internally. There is an edge case where not all integer values in int64 or uint64 range can be represented exactly in float64. It is possible that large values with a small difference could round to the same floating point value after type cast.In practice I don't think use of 64-bit integer image types is common, but it would be good to resolve the issue for completeness.
This issue would also apply to
morphology.h_minimaandmorphology.h_maximaas well since they use this function internally.