Skip to content

Commit d87e9d7

Browse files
Merge pull request #162 from haesleinhuepf/negative_labels
Warn of and display negative labels
2 parents f05092b + fde5d22 commit d87e9d7

File tree

5 files changed

+55
-8
lines changed

5 files changed

+55
-8
lines changed

docs/label_display.ipynb

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
},
105105
{
106106
"cell_type": "code",
107-
"execution_count": 7,
107+
"execution_count": 4,
108108
"id": "814c1423-4e97-444a-b391-d071770b61fb",
109109
"metadata": {
110110
"tags": []
@@ -136,7 +136,7 @@
136136
" [2, 3]])"
137137
]
138138
},
139-
"execution_count": 7,
139+
"execution_count": 4,
140140
"metadata": {},
141141
"output_type": "execute_result"
142142
}
@@ -149,9 +149,52 @@
149149
},
150150
{
151151
"cell_type": "code",
152-
"execution_count": null,
152+
"execution_count": 5,
153153
"id": "58966dc1-2eb9-44fb-bdee-c1e78c2c7ab7",
154154
"metadata": {},
155+
"outputs": [
156+
{
157+
"data": {
158+
"text/html": [
159+
"<table>\n",
160+
"<tr>\n",
161+
"<td>\n",
162+
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAACQpJREFUeJzt2LFtAlEUBVFApC7CmbcUROKQUijBgfsjdeQ2PlUsT2jOqeCGo3tca60DAAAZp+kBAAC8lgAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQMx5egDv6/G1TU+AXV2+f6cnwK7+fq7TExjiAQQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiztMDeF/b7X96Auzq4/M+PQF2dp0ewBAPIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYo5rrTU9AgCA1/EAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGIEIABAjAAEAIgRgAAAMQIQACBGAAIAxAhAAIAYAQgAECMAAQBiBCAAQIwABACIEYAAADECEAAgRgACAMQIQACAGAEIABAjAAEAYgQgAECMAAQAiBGAAAAxAhAAIEYAAgDECEAAgBgBCAAQIwABAGKexQgSE/40h/EAAAAASUVORK5CYII=\"></img>\n",
163+
"</td>\n",
164+
"<td style=\"text-align: center; vertical-align: top;\">\n",
165+
"\n",
166+
"<table>\n",
167+
"<tr><td>shape</td><td>(2,&nbsp;2)</td></tr>\n",
168+
"<tr><td>dtype</td><td>int32</td></tr>\n",
169+
"<tr><td>size</td><td>16.0 B</td></tr>\n",
170+
"<tr><td>min</td><td>-3</td></tr><tr><td>max</td><td>4</td></tr><tr><td>n labels</td><td>4</td></tr><tr><td colspan=\"2\" style=\"color:darkred; font-weight:bold\">Negative label values detected!</td></tr>\n",
171+
"</table>\n",
172+
"\n",
173+
"</td>\n",
174+
"</tr>\n",
175+
"</table>"
176+
],
177+
"text/plain": [
178+
"StackViewNDArray([[ 4, 1],\n",
179+
" [ 2, -3]])"
180+
]
181+
},
182+
"execution_count": 5,
183+
"metadata": {},
184+
"output_type": "execute_result"
185+
}
186+
],
187+
"source": [
188+
"labels = [[4,1],[2,-3]]\n",
189+
"\n",
190+
"stackview.insight(labels)"
191+
]
192+
},
193+
{
194+
"cell_type": "code",
195+
"execution_count": null,
196+
"id": "78c31759-b9f0-4729-beaa-e7381b15fb20",
197+
"metadata": {},
155198
"outputs": [],
156199
"source": []
157200
}

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="stackview",
8-
version="0.15.3",
8+
version="0.15.4",
99
author="Robert Haase",
1010
author_email="[email protected]",
1111
description="Interactive image stack viewing in jupyter notebooks",

stackview/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "0.15.3"
1+
__version__ = "0.15.4"
22

33
from ._static_view import jupyter_displayable_output, insight
44
from ._utilities import merge_rgb

stackview/_imshow.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ def imshow(image,
9696
if max_display_intensity is None:
9797
max_display_intensity = 65536
9898

99+
if image.min() < 0:
100+
image = np.abs(image)
101+
99102
if plot is None:
100103
import matplotlib.pyplot as plt
101104
plt.imshow(image, cmap=colormap, vmin=min_display_intensity, vmax=max_display_intensity, interpolation='nearest',

stackview/_static_view.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ def _repr_html_(self):
113113

114114
histogram = _png_to_html(_plt_to_png())
115115

116+
min_intensity = self.obj.min()
116117
max_intensity = self.obj.max()
117-
min_max = "<tr><td>min</td><td>" + str(self.obj.min()) + "</td></tr>" + \
118+
min_max = "<tr><td>min</td><td>" + str(min_intensity) + "</td></tr>" + \
118119
"<tr><td>max</td><td>" + str(max_intensity) + "</td></tr>"
119120

120121
if labels:
@@ -126,9 +127,9 @@ def _repr_html_(self):
126127
min_max += "<tr><td>n labels</td><td>" + str(num_labels) + "</td></tr>"
127128
if max_intensity != num_labels:
128129
min_max += "<tr><td colspan=\"2\"><a href=\"https://haesleinhuepf.github.io/BioImageAnalysisNotebooks/20h_segmentation_post_processing/sequential_labeling.html\" style=\"color:darkred; font-weight:bold\">Not sequentially labeled!</a></td></tr>"
129-
130+
if min_intensity < 0:
131+
min_max += "<tr><td colspan=\"2\" style=\"color:darkred; font-weight:bold\">Negative label values detected!</td></tr>"
130132
else:
131-
132133
min_max = ""
133134

134135
help_text = ""

0 commit comments

Comments
 (0)