# HG changeset patch
# User imgteam
# Date 1727199020 0
# Node ID 5907be5a8d7ce7edf7663ab61918aa9c7fe9de04
# Parent 2d1de6e7b1137c9d0fd9a08916a062fd74c4ef35
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/colorize_labels commit 4344f548f365dba87c20188d6e3c2df8630d2313
diff -r 2d1de6e7b113 -r 5907be5a8d7c colorize_labels.py
--- a/colorize_labels.py Wed Apr 24 08:12:15 2024 +0000
+++ b/colorize_labels.py Tue Sep 24 17:30:20 2024 +0000
@@ -1,12 +1,11 @@
import argparse
import giatools.io
-import matplotlib.colors as mpl
+import matplotlib.pyplot as plt
import networkx as nx
import numpy as np
import scipy.ndimage as ndi
import skimage.io
-import skimage.morphology as morph
import skimage.util
@@ -22,7 +21,6 @@
def build_label_adjacency_graph(im, radius, bg_label):
G = nx.Graph()
- selem = morph.disk(radius)
for label in np.unique(im):
if label == bg_label:
@@ -31,7 +29,7 @@
G.add_node(label)
cc = (im == label)
- neighborhood = ndi.binary_dilation(cc, selem)
+ neighborhood = (ndi.distance_transform_edt(~cc) <= radius)
adjacent_labels = np.unique(im[neighborhood])
for adjacent_label in adjacent_labels:
@@ -45,6 +43,18 @@
return G
+def get_n_unique_mpl_colors(n, colormap='jet', cyclic=False):
+ """
+ Yields `n` unique colors from the given `colormap`.
+
+ Set `cyclic` to `True` if the `colormap` is cyclic.
+ """
+ cmap = plt.get_cmap(colormap)
+ m = n if cyclic else n - 1
+ for i in range(n):
+ yield np.multiply(255, cmap(i / m))
+
+
if __name__ == '__main__':
parser = argparse.ArgumentParser()
@@ -68,7 +78,7 @@
unique_colors = frozenset(graph_coloring.values())
# Assign colors to nodes based on the greedy coloring
- graph_color_to_mpl_color = dict(zip(unique_colors, mpl.TABLEAU_COLORS.values()))
+ graph_color_to_mpl_color = dict(zip(unique_colors, get_n_unique_mpl_colors(len(unique_colors))))
node_colors = [graph_color_to_mpl_color[graph_coloring[n]] for n in G.nodes()]
# Render result
@@ -77,7 +87,6 @@
for label, label_color in zip(G.nodes(), node_colors):
cc = (im == label)
- label_color = color_hex_to_rgb_tuple(label_color)
for ch in range(3):
result[:, :, ch][cc] = label_color[ch]
diff -r 2d1de6e7b113 -r 5907be5a8d7c colorize_labels.xml
--- a/colorize_labels.xml Wed Apr 24 08:12:15 2024 +0000
+++ b/colorize_labels.xml Tue Sep 24 17:30:20 2024 +0000
@@ -4,7 +4,7 @@
creators.xml
tests.xml
3.2.1
- 2
+ 3
@@ -43,6 +43,7 @@
+
@@ -52,6 +53,7 @@
+
@@ -61,6 +63,16 @@
+
+
+
+
+
+
+
+
+
+
diff -r 2d1de6e7b113 -r 5907be5a8d7c creators.xml
--- a/creators.xml Wed Apr 24 08:12:15 2024 +0000
+++ b/creators.xml Tue Sep 24 17:30:20 2024 +0000
@@ -5,6 +5,11 @@
+
+
+
+
+
diff -r 2d1de6e7b113 -r 5907be5a8d7c test-data/input3.tif
Binary file test-data/input3.tif has changed
diff -r 2d1de6e7b113 -r 5907be5a8d7c test-data/output1.png
Binary file test-data/output1.png has changed
diff -r 2d1de6e7b113 -r 5907be5a8d7c test-data/output2.png
Binary file test-data/output2.png has changed
diff -r 2d1de6e7b113 -r 5907be5a8d7c test-data/output3.png
Binary file test-data/output3.png has changed