Plugin development: should I start with ImageJ2 right away?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Plugin development: should I start with ImageJ2 right away?

José María Mateos
Hello everybody,

I started developing a clustering development framework targeted at
dynamic nuclear medicine studies some months ago using an imaging
platform different from ImageJ.

Due to some "obscure" aspects of said platform, I'm thinking about
moving the development of this framework and start building it on top of
ImageJ.

Now the question arises: should I start developing for ImageJ2 or will
it be better for my sanity to stick to the "classical" ImageJ until
ImageJ2 comes out of the beta stage? How much refactoring will be
waiting for me when I want to update my program if I choose the latter?

Best,

José María Mateos.

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Plugin development: should I start with ImageJ2 right away?

ctrueden
Hi José,


> Now the question arises: should I start developing for ImageJ2 or will it
> be better for my sanity to stick to the "classical" ImageJ until ImageJ2
> comes out of the beta stage? How much refactoring will be waiting for me
> when I want to update my program if I choose the latter?


The current status of ImageJ2 is that it is quite stable now, and getting
more so every day. However, as you point out, it is still very much beta
software. While I believe the core architecture will not undergo major
design or API changes at this point, we are not making any guarantees about
it until the final release of 2.0.0.

I think it makes sense to begin exploring writing your code as ImageJ2
plugins. However, there are still major features missing from ImageJ2. For
example, we do not yet have many of ImageJ1's analysis capabilities such as
thresholding  or results tables.

Another aspect to consider is that ImageJ2 is trying to provide as backward
compatibility with ImageJ1. So if you write your code targeting ImageJ1,
the hope is that it will also work in ImageJ2, especially if it does not
have any custom or embedded UI/AWT logic.

All of that said, the reality is that if you want to write your code
against ImageJ2 either now in the future, you will be looking at some
amount of eventual refactoring, from either IJ1-to-IJ2 (if you initially
write it in the IJ1 framework) or from IJ2-to-IJ2 (if you initially write
it in the IJ2 beta framework).

Regards,
Curtis


On Tue, Jul 10, 2012 at 9:43 AM, José María Mateos <[hidden email]>wrote:

> Hello everybody,
>
> I started developing a clustering development framework targeted at
> dynamic nuclear medicine studies some months ago using an imaging platform
> different from ImageJ.
>
> Due to some "obscure" aspects of said platform, I'm thinking about moving
> the development of this framework and start building it on top of ImageJ.
>
> Now the question arises: should I start developing for ImageJ2 or will it
> be better for my sanity to stick to the "classical" ImageJ until ImageJ2
> comes out of the beta stage? How much refactoring will be waiting for me
> when I want to update my program if I choose the latter?
>
> Best,
>
> José María Mateos.
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.**html<http://imagej.nih.gov/ij/list.html>
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Plugin development: should I start with ImageJ2 right away?

José María Mateos
Hi Curtis,

Thanks for your answer. Given that I don't really need much of ImageJ or
ImageJ2 particular capabilities, I think that for the time being I will
stick with ImageJ and do the refactoring once ImageJ2 comes out of the
beta stage.

This plugin does heavy use of HyperStacks. One thing I'm missing is the
aiblity to directly get time-activity curves: the evolution in the
intensity of a given voxel along each frame. I've solved this by
extending ImagePlus and adding a nice getTac(x, y, z) method (as seen on
https://gist.github.com/3104185, if anyone is interested). I don't know
if there is a better way for doing so. This method is quite fast (< 1
second to get all the TACs from a 128x128x64x25 4D volume), but I think
a native method would be better.

Best,

José.

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html