[ImageJ-devel] plugin development for ImageJ2 or ImageJ1?

Polder, Gerrit gerrit.polder at wur.nl
Sat Jan 10 15:59:11 CST 2015


Curtis and Mark,

thanks for clarifying the situation. As I already told I’m an occasional ImageJ user/programmer, and due to that not completely up to date regarding its current stage. Regarding ImageJ2 versus ImgLib, yes I know, I joined one of the ImgLib workshops during the last ImageJ conference in Luxembourg. This is one of the reasons I really would like to switch.

But your explanation placed me with both feet again on the ground. For this particular project I will use ImageJ1.

Best regards,
Gerrit.

On 8 jan. 2015, at 20:57, Curtis Rueden <ctrueden at wisc.edu<mailto:ctrueden at wisc.edu>> wrote:

Hi Gerrit,

> I’m a little bit confused reading ImageJ2 is still in beta.

It is confusing because "ImageJ2" consists of more than one component -- some of which are still in beta, and some of which are not [1]. In each case, the component's version number gives a hint [2].

In a nutshell: ImageJ2 is "in production" as an end-user application which enhances ImageJ1, but ImageJ2's data model [3] and image I/O [4] libraries are still under heavy development and not yet production quality.

> I thought it would be worthwhile to convert it to the current ImageJ
> platform, in order to make it future proof.

As Mark said, coding against ImageJ 1.x is the most future proof for now. The ImageJ2 data model will be a good choice once it is more mature and has reached version 1.0.0.

> I’v seen a lot of nice ImageJ2 and ImgLib features, and promises about
> availability.

If you want to start utilizing some of the new features sooner, two useful components in particular are out of beta:

1. ImgLib2 [5] - powerful new N-dimensional data model

There are several Fiji plugins (e.g., [6]) that use ImgLib2 together with the ImageJ1 data model; the imglib2-ij component [7] is useful for doing this. (The difference between ImgLib2 and ImageJ2 is: ImgLib2 provides a powerful underlying image data model, while ImageJ2 builds rich metadata structures on top of it.)

2. SciJava Common [8] - powerful new plugin framework

There are several cool things you can do with SciJava Common -- e.g., define new plugin types, or write parameterized commands (e.g., [9], [10]) usable from various applications such as ImageJ, KNIME, OMERO and CellProfiler.

All the code is available on GitHub [11], and all the binaries are shipped with Fiji [12].

Regards,
Curtis

[1] http://imagej.net/ImageJ2#ImageJ2_is_more_than_just_an_application
[2] http://imagej.net/Architecture#Versioning
[3] http://imagej.net/ImageJ_Common
[4] http://imagej.net/SCIFIO
[5] http://imagej.net/ImgLib2
[6] http://fiji.sc/Stitching
[7] https://github.com/imglib/imglib2-ij
[8] http://imagej.net/SciJava_Common
[9] http://git.io/zEx--w
[10] http://git.io/FapZcw
[11] http://imagej.net/Source_code
[12] http://fiji.sc/Downloads

On Thu, Jan 8, 2015 at 8:29 AM, Mark Hiner <hiner at wisc.edu<mailto:hiner at wisc.edu>> wrote:
Hi Gerrit,

>so given the fact that ImageJ2 reached the 2.0.0 stage in june last year, and also since it is the default ImageJ version in Fiji

The ImageJ welcome page [1] describes each of Fiji, ImageJ 1.x and ImageJ2 in detail. But to clarify briefly, Fiji is a distribution of ImageJ - it includes both ImageJ 1.x, and ImageJ2 (as well as a number of plugins).

>So from your message I conclude that although my customer uses Fiji, I better stick to ImageJ1

Because Fiji ships both ImageJ 1.x and IJ2, it is capable of running plugins for both. Since your client can use either, for production work like it sounds you're doing, you should use the ImageJ 1.x API [2] due to its stability. The ImageJ2 team is committed to backwards compatibility with ImageJ 1.x [3], so your plugins should still work as ImageJ2 continues to develop.

>Is there information available about ImageJ’s roadmap?

All our development happens on GitHub [4]. In particular, the base ImageJ repository [5] provides a good view of issues and milestones.

>As you suggested I will send this message also to Imagej-devel, sorry for cross-posting.

No worries at all. Per the mailing list descriptions [6], both of these lists are perfectly appropriate for the scope of these discussions.

Hope this helps. Thanks for the questions - let us know if you have any more!

Best,
Mark

[1] http://imagej.net/Welcome
[2] http://imagej.net/developer/api/index.html
[3] http://imagej.net/Frequently_Asked_Questions#Will_ImageJ1_macros.2C_plugins_and_scripts_still_work_in_ImageJ2.3F
[4] http://imagej.net/Git
[5] https://github.com/imagej/imagej
[6] http://imagej.net/Mailing_lists

On Thu, Jan 8, 2015 at 7:16 AM, Polder, Gerrit <gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl>> wrote:
Dear Wayne,

I’m a little bit confused reading ImageJ2 is still in beta.

Im not a fulltime ImageJ user, but once and a while customers ask me to develop imaging software in ImageJ. Mainly I'm using Matlab and Halcon.
I’m spending about 4-8 weeks a year on ImageJ. My previous project was about a year ago.
Currently I need to update some features on one of my plugins, so given the fact that ImageJ2 reached the 2.0.0 stage in june last year, and also since it is the default ImageJ version in Fiji, as I already said I thought it would be worthwhile to convert it to the current ImageJ platform, in order to make it future proof.

So from your message I conclude that although my customer uses Fiji, I better stick to ImageJ1, in order not to provide him with a buggy plugin.

On the last two conferences I’v seen a lot of nice ImageJ2 and ImgLib features, and promises about availability.
Is there information available about ImageJ’s roadmap?

As you suggested I will send this message also to Imagej-devel, sorry for cross-posting.

best regards,
Gerrit.

On 8 Jan 2015, at 05:50, Rasband, Wayne (NIH/NIMH) [E] <rasbandw at mail.nih.gov<mailto:rasbandw at mail.nih.gov>> wrote:

> Dear Gerrit,
>
>> On Jan 7, 2015, at 2:54 PM, Polder, Gerrit <gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl>> wrote:
>>
>> Dear Wayne,
>>
>> thanks for the prompt reply, my question was indeed not clear stated.
>> Yes this is a ImageJ1 plugin, but since I need to add some functionality to it I thought it would be worthwhile to convert it to the current ImageJ platform, in order to make it future proof.
>> As ImageJ2 now is the production release I decided to give it a try.
>
> ImageJ2 is not the production release. It is beta software. The two options in Fiji’s Edit>Option>ImageJ2 dialog (ImageJ2 data structures and SCIFIO) are disabled by default because they are buggy.
>
>> Is it true that questions related to the development of user plugins should be addressed to imagej-devel?
>
> Question related to development of ImageJ2 plugins, imglib2 and SCIFIO should be addressed to imagej-devel.
>
>> I’m also curious about other plugin developers, how many still develop in ImageJ1, and how many switched already to ImageJ2?
>
> Most developers are still writing ImageJ plugins.
>
>> By the way I already found part of the problem. The Image I tested my plugin tryout on was an old ImageJ image, instead of a new dataset ‘image’. After enabling the SCIFIO library I could input an image in my plugin.
>> But still I think need more documentation and examples, kind of ‘guide for switchers’.
>
> You should bring these issues up on the imagej-devel mailing list.
>
> Best regards,
>
> -wayne
>
>
>> On 7 jan. 2015, at 17:26, Rasband, Wayne (NIH/NIMH) [E] <rasbandw at mail.nih.gov<mailto:rasbandw at mail.nih.gov><mailto:rasbandw at mail.nih.gov<mailto:rasbandw at mail.nih.gov>>> wrote:
>>
>> Dear Polder,
>>
>> Your plugin is not an ImageJ2 plugin. It is an ImageJ plugin that you can easily compile and run it using the Plugins>Compile and Run command. Questions about ImageJ2 and mavin should be sent to the image-dev mailing list.
>>
>> http://imagej.net/mailman/listinfo/imagej-devel
>>
>> Best regards,
>>
>> -wayne
>>
>>
>>
>> On Jan 7, 2015, at 10:40 AM, Polder, Gerrit <gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl><mailto:gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl>>> wrote:
>>
>> I succeeded in making a maven project, but I’m still struggling in finding demo code and the api for writing a simple plugin.
>> For instance how to code a pluginfiler in imagej2?
>>
>> public class Get_blue_region implements PlugInFilter {
>> ImagePlus imp;
>> boolean DEBUG = false;
>>
>> public int setup(String arg, ImagePlus imp) {
>>     this.imp = imp;
>>     if (arg.equals("about")) {
>>         showAbout();
>>         return DONE;
>>     }
>>     return DOES_RGB;
>> }
>>
>> public void run(ImageProcessor ip) {
>>     ImagePlus calim = new ImagePlus("Blue Part", ip);
>>     …………….
>> }
>> }
>>
>> sorry if this is a silly question, but I got stuck in all wikis and github repositories.
>>
>> Gerrit.
>>
>>
>> On 20 Dec 2014, at 19:11, Polder, Gerrit <gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl><mailto:gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl>><mailto:gerrit.polder at wur.nl<mailto:gerrit.polder at wur.nl>>> wrote:
>>
>> thanks Mark, this is exactly where I was looking for.
>>
>> Gerrit.
>>
>> On 20 dec. 2014, at 06:00, IMAGEJ automatic digest system <LISTSERV at LIST.NIH.GOV<mailto:LISTSERV at LIST.NIH.GOV><mailto:LISTSERV at LIST.NIH.GOV<mailto:LISTSERV at LIST.NIH.GOV>><mailto:LISTSERV at LIST.NIH.GOV<mailto:LISTSERV at LIST.NIH.GOV>>> wrote:
>>
>> Hi Gerrit,
>>
>> Now I like to switch to IJ2, I’m wondering whether there is an IJ2 example
>> project available.
>>
>> The ImageJ-tutorials <https://github.com/imagej/imagej-tutorials> project
>> is the intended starting point for developers. There is also an accompanying
>> entry <http://imagej.net/Writing_ImageJ2_plugins> in the Development
>> <http://imagej.net/Development> section of the ImageJ wiki.
>>
>> Thanks for the interest in ImageJ2 - let us know if you have any questions
>> or run into problems!
>>
>> Best,
>> Mark
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>


_______________________________________________
ImageJ-devel mailing list
ImageJ-devel at imagej.net<mailto:ImageJ-devel at imagej.net>
http://imagej.net/mailman/listinfo/imagej-devel


_______________________________________________
ImageJ-devel mailing list
ImageJ-devel at imagej.net<mailto:ImageJ-devel at imagej.net>
http://imagej.net/mailman/listinfo/imagej-devel






More information about the ImageJ-devel mailing list