Skip to content

Commit 7ed8450

Browse files
committed
Improve labels transfer to ImageJ
1 parent 6b8c32f commit 7ed8450

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

dev-environment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ dependencies:
2929
- numpy
3030
- openjdk=11
3131
- pandas
32-
- pyimagej >= 1.4.1
32+
- pyimagej >= 1.5.0
3333
- scyjava >= 1.9.1
3434
- superqt >= 0.7.0
3535
- xarray < 2024.10.0

environment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ dependencies:
2929
- numpy
3030
- openjdk=11
3131
- pandas
32-
- pyimagej >= 1.4.1
32+
- pyimagej >= 1.5.0
3333
- scyjava >= 1.9.1
3434
- superqt >= 0.7.0
3535
- xarray < 2024.10.0

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ dependencies = [
4242
"napari >= 0.4.17",
4343
"numpy",
4444
"pandas",
45-
"pyimagej >= 1.4.1",
45+
"pyimagej >= 1.5.0",
4646
"scyjava >= 1.9.1",
4747
"superqt >= 0.7.0",
4848
"xarray < 2024.10.0",

src/napari_imagej/widgets/widget_utils.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from logging import getLogger
33
from typing import List
44

5+
from imagej.convert import index_img_to_roi_tree
56
from jpype import JArray, JByte
67
from scyjava import jvm_started
78
from magicgui import magicgui
@@ -156,7 +157,7 @@ def __init__(self, title: str, error_message: str, *args, **kwargs):
156157

157158

158159
_IMAGE_LAYER_TYPES = (Image, Labels)
159-
_ROI_LAYER_TYPES = (Points, Shapes)
160+
_ROI_LAYER_TYPES = (Labels, Points, Shapes)
160161

161162

162163
class LayerComboBox(QWidget):
@@ -261,7 +262,7 @@ def __init__(self, viewer: Viewer):
261262
for layer in viewer.layers:
262263
if isinstance(layer, _IMAGE_LAYER_TYPES):
263264
self.imgs.append(layer)
264-
elif isinstance(layer, _ROI_LAYER_TYPES):
265+
if isinstance(layer, _ROI_LAYER_TYPES):
265266
self.rois.append(layer)
266267

267268
# Add combo boxes
@@ -298,11 +299,17 @@ def pass_to_ij():
298299
j_img = nij.ij.py.to_java(
299300
img, dim_order=self.dims_container.provided_labels()
300301
)
302+
# Labels layers should display the index image
303+
if isinstance(j_img, jc.ImgLabeling):
304+
j_img = j_img.getIndexImg()
301305
if roi:
302306
if isinstance(roi, Points):
303307
j_point = nij.ij.py.to_java(roi)
304308
j_roi = jc.DefaultROITree()
305309
j_roi.addROIs(jc.ArrayList([j_point]))
310+
elif isinstance(roi, Labels):
311+
j_label = nij.ij.py.to_java(roi)
312+
j_roi = index_img_to_roi_tree(nij.ij, j_label.getIndexImg())
306313
else:
307314
j_roi = nij.ij.py.to_java(roi)
308315
j_img.getProperties().put("rois", j_roi)

0 commit comments

Comments
 (0)