# Wrong distance map

**URL:** <https://discourse.itk.org/t/wrong-distance-map/6342>\
**Category:** Algorithms\
**Tags:** distancemap\
**Created:** [December 6, 2023, 6:21pm UTC](https://discourse.itk.org/t/wrong-distance-map/6342 "2023-12-06T18:21:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sean\_Hatton](https://discourse.itk.org/user_avatar/discourse.itk.org/sean_hatton/32/2957_2.png) [@Sean\_Hatton](https://discourse.itk.org/u/Sean_Hatton)\
**Post date:** [December 6, 2023, 6:21pm UTC](https://discourse.itk.org/t/wrong-distance-map/6342/1 "2023-12-06T18:21:43Z")

</div>

I have a weird problem with distancemaps. I am in a Python 3.7 environment with SITK 2.2 (SITK 2.3 not supported on Python 3.7). I was able to run sitk.SignedMaurerDistanceMap and sitk.SignedDanielssonDistanceMap alternately depending on user preference, but now if I run a sitk.SignedMaurerDistanceMap I get the results and voronoi graph from sitk.SignedDanielssonDistanceMap. sitk.ApproximateSignedDistanceMap just hangs. I am casting to UInt8.

```auto
seeds = sitk.ConnectedComponent(sitk.Cast(filtered_eroded, sitk.sitkUInt16) 
                                != sitk.Cast(filtered_eroded, sitk.sitkUInt16)[0, 0, 0])
seeds = sitk.Cast(seeds, sitk.sitkUInt8)
seeds_outfile = (f'{args_features.output_dir}/{model}_seeds.seg.nrrd')
sitk.WriteImage(seeds, seeds_outfile, 
                imageIO='NrrdImageIO', useCompression=True)
if args_features.distancemap == 'smd':
    print('Creating a Watershed Signed Maurer Distance Map')
    dist_img = sitk.SignedMaurerDistanceMap(seeds !=0, insideIsPositive=False, squaredDistance=False, useImageSpacing=True)
elif args_features.distancemap == 'dd':
    print('Creating a Voronoi Danielsson Distance Map')
    dist_img = sitk.SignedDanielssonDistanceMap(seeds !=0, squaredDistance=False, useImageSpacing=True)
elif args_features.distancemap == 'asd':
    print('Creating a Approximate Signed Distance Map')
    dist_img = sitk.ApproximateSignedDistanceMap(seeds !=0, 0, 1)
else:
    print('Choose between watershed routines in the env.txt file.') 
#dist_img = sitk.SignedDanielssonDistanceMap(seeds !=0, squaredDistance=False, useImageSpacing=True)
#dist_img = sitk.SignedMaurerDistanceMap(seeds, squaredDistance=False, useImageSpacing=True)
ws = sitk.MorphologicalWatershedFromMarkers(dist_img, seeds, markWatershedLine=True)
ws_outfile = (f'{args_features.output_dir}/{model}_ws.nrrd')
if os.path.exists(ws_outfile):
    os.remove(ws_outfile)
sitk.WriteImage(sitk.Cast(ws, sitk.sitkUInt16), ws_outfile, imageIO='NrrdImageIO', useCompression=True)

```

---

<div class="post-metadata">

**Author:** ![Sean\_Hatton](https://discourse.itk.org/user_avatar/discourse.itk.org/sean_hatton/32/2957_2.png) [@Sean\_Hatton](https://discourse.itk.org/u/Sean_Hatton)\
**Post date:** [December 8, 2023, 8:17pm UTC](https://discourse.itk.org/t/wrong-distance-map/6342/2 "2023-12-08T20:17:20Z")

</div>

Nevermind, I was mixing up distance maps with watershed patterns. All good.
