diff voronoi_tessellation.py @ 0:8b74843c136e draft

planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/voronoi_tesselation commit 43f036ed5341c36a1e076f9df9f47a3743ef4e6f
author imgteam
date Sat, 09 Mar 2024 22:27:23 +0000
parents
children 412d7478ec92
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voronoi_tessellation.py	Sat Mar 09 22:27:23 2024 +0000
@@ -0,0 +1,33 @@
+import argparse
+
+import numpy as np
+import scipy.ndimage as ndi
+import skimage.io
+from skimage.segmentation import watershed
+
+
+if __name__ == '__main__':
+
+    parser = argparse.ArgumentParser()
+    parser.add_argument('input')
+    parser.add_argument('output')
+    args = parser.parse_args()
+
+    im = skimage.io.imread(args.input)
+    im = im.squeeze()
+    assert im.ndim == 2
+
+    distances = np.full(im.shape, np.inf)
+    for label in np.unique(im):
+        if label == 0:
+            continue
+
+        label_distances = ndi.distance_transform_edt(im != label)
+        distances = np.min((distances, label_distances), axis=0)
+
+    result = watershed(
+        image=distances,
+        markers=im,
+    )
+
+    skimage.io.imsave(args.output, result)