Hello!
I am new to ImageJ but I think it might be a good option for a project that I am currently planning. I have an allready existing application which is a Swing Applet that communicates with an applicationserver. It basically manages tabular data in a CRUD fashion. Now I have the additional requirement that some entities in a table are linked to stacks of images on the client filesystem (raw data that I was allready able to import and use in IJ). - The user should be able to open such an image and (graphically) interact with it. - Ideally the ImagePlus and the selectiontools should be embedded with in the Swing ui, but after reviewing the IJ Swing-UI it does not seem to offer all the options that I'd need, yet. Out of the box I could embedd the Image using JImagePanel but not interact with it, correct? - The following IJ core or plugin functions need to be supported: -- Import RAW image (just like with the import-raw option in the classic IJ ui) through api call -- Load addtional images as overlays through api call -- Zoom, move and scroll through slices using the mouse -- Select/Focus an existing ROI through api call -- Create new ROI by means of drawing on the image, then get the resulting data (position, measure..) back into the applet. -- Adjust window/level (HU), similar to the "CT Window Level" plugin -- Optionally show Orthoslices So the question is: If embedding in Swing is not feasable, as my requirements are not yet supported, is there a way to "remotecontrol" IJ and communicate with it in a bidirectional fashion. Probably something like an eventbus? Thnx in advance for your help! kind regards, Marius Giepz -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hi Marius,
> embedding in Swing You can mix and match AWT and Swing components, so if you can tolerate ImageJ 1.x's use of AWT, you may be all set. Alternately, the ImageJ2 project has a more flexible UI plugin system, which includes a Swing-based UI closely modeled after the ImageJ 1.x interface: https://github.com/imagej/imagej-ui-swing However, ImageJ2 UIs other than the "legacy" interface have very limited support for ImageJ 1.x plugins. Given your requirements, it would probably be the least effort to use ImageJ1 as an applet, and tolerate its AWT-isms. > is there a way to "remotecontrol" IJ and communicate with it in a > bidirectional fashion. If you use ImageJ2, there is limited support for running ImageJ1 code headless; see: http://imagej.net/Headless > Probably something like an eventbus? The ImageJ2/SciJava architecture uses an event bus for all its event handling: https://github.com/scijava/scijava-common/blob/scijava-common-2.35.1/src/main/java/org/scijava/event/EventService.java But that won't help you w.r.t. ImageJ 1.x functionality. Regards, Curtis On Thu, Dec 4, 2014 at 5:58 AM, Marius Giepz <[hidden email]> wrote: > Hello! > I am new to ImageJ but I think it might be a good option for a project > that I am > currently planning. > > I have an allready existing application which is a Swing Applet that > communicates with an applicationserver. > It basically manages tabular data in a CRUD fashion. Now I have the > additional > requirement that some entities in a table > are linked to stacks of images on the client filesystem (raw data that I > was > allready able to import and use in IJ). > > - The user should be able to open such an image and (graphically) interact > with > it. > - Ideally the ImagePlus and the selectiontools should be embedded with in > the > Swing ui, but after reviewing the IJ Swing-UI it does not seem to offer > all the > options that I'd need, yet. > Out of the box I could embedd the Image using JImagePanel but not > interact > with it, correct? > - The following IJ core or plugin functions need to be supported: > -- Import RAW image (just like with the import-raw option in the classic > IJ ui) > through api call > -- Load addtional images as overlays through api call > -- Zoom, move and scroll through slices using the mouse > -- Select/Focus an existing ROI through api call > -- Create new ROI by means of drawing on the image, then get the resulting > data > (position, measure..) back into the applet. > -- Adjust window/level (HU), similar to the "CT Window Level" plugin > -- Optionally show Orthoslices > > So the question is: If embedding in Swing is not feasable, as my > requirements > are not yet supported, is there a way to "remotecontrol" IJ and > communicate with > it in a bidirectional fashion. Probably something like an eventbus? > Thnx in advance for your help! > > kind regards, > > Marius Giepz > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hi Marius,
> dicom examples and tried to load them through the swing-ui (I thought > scifio would support that) but it only says "Initializing... .dcm" Yes, SCIFIO does support DICOM out of the box [1]. > Can I load stacks with the swing ui? Yes. The behavior you observed was a bug in SCIFIO, now fixed [2]. The fix will be uploaded to the ImageJ update site this Friday. In the meantime, you can add a dependency to io.scif:scifio:0.17.2-SNAPSHOT to test the fix. See also http://imagej.net/Architecture#Using_snapshot_couplings_during_development Regards, Curtis [1] https://github.com/scifio/scifio/blob/scifio-0.17.1/src/main/java/io/scif/formats/DICOMFormat.java [2] https://github.com/scifio/scifio/commit/c6a1dccc331d093a9d71de5ca00332cdf89095f5 On Tue, Dec 16, 2014 at 10:43 AM, Marius Giepz <[hidden email]> wrote: > > Hi! > Thanks a lot for your answers. I finally found some time to look a little > bit more into the code. From what I see the only option for what I need > would be to > start with the (although still limited) ImageJ2 framework and its swing > ui as an example. > The only code I found so far which uses an embedding scenario like mine > with IJ1 seems to be TrakEM2. After looking at the code I definitely do NOT > want to go that route of AWT/Swing crazyness. > > So now I am checking at least the basic requirements with IJ2: > > - eventbus: ok (very cool ;)) > - roi drawing + overlays: ok > - measuring roi: does not seem to be in the swing roi-manager, but the > sandbox measurement demo shows how to do it > - adjust window/level (HU): I guess that is feasable with ImageLib2 > somehow > - import raw images: That has to be implemented in SCIFIO, right? > > - stacked images: I downloaded some free dicom examples and tried to load > them through the swing-ui (I thought scifio would support that) but it only > says "Initializing... .dcm" but never shows something. Is that not > implemented yet? Can I load stacks with the swing ui? > > best regards, > > Marius > > > Curtis Rueden <[hidden email]> hat am 5. Dezember 2014 um 22:15 > geschrieben: > > Hi Marius, > > > embedding in Swing > > You can mix and match AWT and Swing components, so if you can tolerate > ImageJ 1.x's use of AWT, you may be all set. > > Alternately, the ImageJ2 project has a more flexible UI plugin system, > which includes a Swing-based UI closely modeled after the ImageJ 1.x > interface: https://github.com/imagej/imagej-ui-swing > > However, ImageJ2 UIs other than the "legacy" interface have very limited > support for ImageJ 1.x plugins. > > Given your requirements, it would probably be the least effort to use > ImageJ1 as an applet, and tolerate its AWT-isms. > > > is there a way to "remotecontrol" IJ and communicate with it in a > > bidirectional fashion. > > If you use ImageJ2, there is limited support for running ImageJ1 code > headless; see: > http://imagej.net/Headless > > > Probably something like an eventbus? > > The ImageJ2/SciJava architecture uses an event bus for all its event > handling: > > https://github.com/scijava/scijava-common/blob/scijava-common-2.35.1/src/main/java/org/scijava/event/EventService.java > > But that won't help you w.r.t. ImageJ 1.x functionality. > > Regards, > Curtis > > On Thu, Dec 4, 2014 at 5:58 AM, Marius Giepz <[hidden email]> > wrote: > > Hello! > I am new to ImageJ but I think it might be a good option for a project > that I am > currently planning. > > I have an allready existing application which is a Swing Applet that > communicates with an applicationserver. > It basically manages tabular data in a CRUD fashion. Now I have the > additional > requirement that some entities in a table > are linked to stacks of images on the client filesystem (raw data that I > was > allready able to import and use in IJ). > > - The user should be able to open such an image and (graphically) interact > with > it. > - Ideally the ImagePlus and the selectiontools should be embedded with in > the > Swing ui, but after reviewing the IJ Swing-UI it does not seem to offer > all the > options that I'd need, yet. > Out of the box I could embedd the Image using JImagePanel but not interact > with it, correct? > - The following IJ core or plugin functions need to be supported: > -- Import RAW image (just like with the import-raw option in the classic > IJ ui) > through api call > -- Load addtional images as overlays through api call > -- Zoom, move and scroll through slices using the mouse > -- Select/Focus an existing ROI through api call > -- Create new ROI by means of drawing on the image, then get the resulting > data > (position, measure..) back into the applet. > -- Adjust window/level (HU), similar to the "CT Window Level" plugin > -- Optionally show Orthoslices > > So the question is: If embedding in Swing is not feasable, as my > requirements > are not yet supported, is there a way to "remotecontrol" IJ and > communicate with > it in a bidirectional fashion. Probably something like an eventbus? > Thnx in advance for your help! > > kind regards, > > Marius Giepz > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > > > > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Free forum by Nabble | Edit this page |