Hi Hadrien! >so I am not sure wether it's a bug or it's something not supported right now.
It looks like it's a limitation of the DefaultDataset[1] right now. I updated the message to suggest a workaround, at least[2]. So if you change your next to last line to: ds2 = ij.op().crop(interval, ds.getImgPlus()) to crop the ImgPlus that's wrapped by the Dataset, your script should work (or at least not crash). Thanks, as always, for the report :) Best, Mark [1] https://github.com/imagej/imagej-common/blob/59bfc3cebf8204a48bc559adf079f227652514ed/src/main/java/net/imagej/DefaultDataset.java#L734-736 [2] https://github.com/imagej/imagej-common/commit/75330a95c66013390cf4b6b4511e08357a8a28b0 On Sun, Jan 25, 2015 at 9:14 AM, Hadrien Mary <hadrien.m...@gmail.com> wrote: > Hi, > > I am having an issue with a script which crop an image with > imagej-ops. The error shows a "TODO" so I am not sure wether it's a > bug or it's something not supported right now. > > ------------------------------- > # @DatasetService data > # @ImageJ ij > > from jarray import array > > from net.imglib2 import FinalInterval > from net.imglib2.img.array import ArrayImgs > from net.imagej.axis import Axes > from net.imglib2.util import Intervals > > fname = "/home/hadim/test_small.ome.tif" > ds = data.open(fname) > > # Initiate dimensions > dims = {} > dim_names = [None] * 5 > for ax in [Axes.X, Axes.Y, Axes.Z, Axes.TIME, Axes.CHANNEL]: > ax_index = ds.dimensionIndex(ax) > dim_names[ax_index] = str(ax) > if int(ds.dimension(ax_index)) == 1: > dims[str(ax)] = (0, 0) > else: > dims[str(ax)] = (0, int(ds.dimension(ax_index)) - 1) > > # Set cropped regions > dims['X'] = (10, 40) > dims['Y'] = (5, 20) > > # Set crop intervals > begin_interval = [dims[name][0] for name in dim_names] > end_interval = [dims[name][1] for name in dim_names] > interval = FinalInterval(begin_interval, end_interval) > print(begin_interval) > print(end_interval) > print(Intervals.contains(ds, interval)) > > ds2 = ij.op().crop(interval, ds) > ij.ui().show(ds2.getName(), ds2) > ---------------------------------------------------- > > Error shows: > > ---------------------------------------------------- > ds2 = ij.op().crop(interval, ds) > at net.imagej.DefaultDataset.factory(DefaultDataset.java:735) > at net.imagej.ImgPlus.factory(ImgPlus.java:280) > at net.imagej.ops.crop.CropImgPlus.run(CropImgPlus.java:74) > at org.scijava.command.CommandModule.run(CommandModule.java:201) > at net.imagej.ops.DefaultOpService.run(DefaultOpService.java:363) > at net.imagej.ops.DefaultOpService.run(DefaultOpService.java:78) > at net.imagej.ops.DefaultOpService.crop(DefaultOpService.java:215) > at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > > java.lang.UnsupportedOperationException: > java.lang.UnsupportedOperationException: TODO > ------------------------------------------------------- > > Thank you > > -- > Hadrien Mary > > Ph.D student in Biology > Tournier-Gachet Team > CNRS - LBCMCP - UMR 5088 > > Université de Toulouse - Bât. 4R3B1 > 118, route de Narbonne - 31062 Toulouse > > _______________________________________________ > ImageJ-devel mailing list > ImageJ-devel@imagej.net > http://imagej.net/mailman/listinfo/imagej-devel >
_______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel