In napari-imagej, we have use cases where you might transfer a Image layer to a Dataset, and then into an ImagePlus for use within the legacy ImageJ UI. This conversion will make use of ImagePlusToDatasetConverter to get that ImagePlus, registering the linking between the created ImagePlus and the original Dataset in the LegacyImageMap.
If you then process that ImagePlus, and attempt to convert it back into a Dataset, the original Dataset in the map gets returned without the changes made in the ImagePlus. The underlying data should be wrapped, but it is not updated before being returned. This results in the need for this HACK in napari-imagej. Ideally, the equivalent of ij.py.sync_image (imp.getStack().setPixels(imp.getProcessor().getPixels(), imp.getCurrentSlice())) would be placed within the ImagePlusToDatasetConverter.
In napari-imagej, we have use cases where you might transfer a
Image
layer to aDataset
, and then into anImagePlus
for use within the legacy ImageJ UI. This conversion will make use ofImagePlusToDatasetConverter
to get thatImagePlus
, registering the linking between the createdImagePlus
and the originalDataset
in theLegacyImageMap
.If you then process that
ImagePlus
, and attempt to convert it back into aDataset
, the originalDataset
in the map gets returned without the changes made in theImagePlus
. The underlying data should be wrapped, but it is not updated before being returned. This results in the need for this HACK in napari-imagej. Ideally, the equivalent ofij.py.sync_image
(imp.getStack().setPixels(imp.getProcessor().getPixels(), imp.getCurrentSlice())
) would be placed within theImagePlusToDatasetConverter
.