Login  Register

Re: Writing a Custom version of ImageJ

Posted by ctrueden on Oct 31, 2012; 5:47pm
URL: http://imagej.273.s1.nabble.com/Writing-a-Custom-version-of-ImageJ-tp5000477p5000614.html

Hi Aaron,

> I am aware that IJ2 is still under beta testing but was wondering if
> there was any documentation on how this new functionally worked (i.e.
> generating user interfaces).

There is short explanation and example of an ImageJ2 command at:
    http://developer.imagej.net/extensibility

In short, you create an ImageJ2 command by declaring its inputs and
outputs, and ImageJ2 takes care of the rest. No need to write any
UI-specific code at all.

You can also peruse the ImageJ2 Tutorials at:
    https://github.com/imagej/imagej-tutorials

HTH,
Curtis


On Tue, Oct 23, 2012 at 7:28 AM, Aaron Hendrickson <[hidden email]>wrote:

> All,
>
> I am very greatful for all the suggestions you have provided
> me....many of which seem to be viable options for working towards my
> goal of automating my procedures.  One reply that caught mt interest
> was from Birgit.  Birgit mentioned that ImageJ 2.0 and Alida provide
> "functionality for automatically generating user interfaces for
> processing units, i.e. plugins in ImageJ 2.0 and so-called operators
> in Alida. These GUIs allow for example to configure certain
> parameters, i.e. to set directory paths or check options, and to
> finally run the operator/plugin".  What I am gathering from this is if
> a series of plugins were to be created, I could use the functionallity
> of IJ2 and/or Alida to generate a user interface that could call on
> these plugins and run the processes I am trying to perform (and with
> relative ease in comparison to create my own gui).  I am aware that
> IJ2 is still under beta testing but was wondering if there was any
> documentation on how this new functionally worked (i.e. generating
> user interfaces).  With a little self teaching in Java, would this be
> a reasonable task for me to accomplish?  The only thing that is
> holding me back is not the amount of work involved, but rather
> figuring out the steps I would need to take to acheive the final
> product I am seeking.  Essentially what I am trying to say is I am
> lost in how I become a good programmer with IJ, but do not care if it
> means a lot of work.
>
> Thanks again everyone,
> Aaron.
>
> On 10/23/12, Alexandre Dufour <[hidden email]> wrote:
> > Dear Aaron,
> >
> > I second Birgit's opinion. With little to no programming knowledge, you
> > might want to look towards 100% graphical alternatives to start from.
> >
> > Our lab develops the ImageJ-friendly Icy software, which specifically
> > targets (among others) our collaborators with no programming knowledge,
> by
> > providing a graphical front-end (called 'Protocols',
> > http://icy.bioimageanalysis.org/plugin/Protocols) to create entire image
> > processing workflows (you can think of this as a graphical batch) by
> > graphically assembling image processing blocks, one after the other (not
> > unlike solutions like Blender or Labview), and this might also fit with
> what
> > you are searching for.
> >
> > The current interface lets you run all Icy plugins, and with minimal
> > programming, you can add your own blocks to the system and go from there.
> > Also, since ImageJ is provided inside Icy, I'm currently writing the
> wrapper
> > to let ImageJ plugins available for insertion in these workflows as well.
> >
> > Hope these opinions will enlighten your horizon !
> >
> > All the best,
> > Alexandre
> >
> > ---
> >  Alexandre Dufour, PhD
> >  Institut Pasteur, Quantitative Image Analysis Unit,
> bioimageanalysis.org
> >  IEEE BISP Tech. Committee,
> > signalprocessingsociety.org/technical-committees/list/bisp-tc
> >  25-28 rue du Dr. Roux, 75724 Paris cedex 15
> > ---
> >
> > On 23 oct. 2012, at 09:52, Birgit Möller wrote:
> >
> >> Hi Aaron,
> >> I agree with Herbie and the others that without any programming
> experience
> >> your plans sound quite ambigious. Even for using the macro language, as
> >> Herbie stated, basic programming skills are unevitable, and it will
> take a
> >> considerable amount of time to learn how to use it effectively. However,
> >> as you stated that a graphical user interface is very important for
> you, I
> >> would like to point you to another option. The new ImageJ 2.0 and
> likewise
> >> our own library called 'Alida' (
> http://www.informatik.uni-halle.de/alida)
> >> both provide functionality for automatically generating user interfaces
> >> for processing units, i.e. plugins in ImageJ 2.0 and so-called operators
> >> in Alida. These GUIs allow for example to configure certain parameters,
> >> i.e. to set directory paths or check options, and to finally run the
> >> operator/plugin. Alida is compatible with ImageJ, i.e. Alida operators
> can
> >> be run within ImageJ/ImageJ 2.0. Of course, for using both systems again
> >> programming knowledge in terms of plain Java is strongly required! But,
> at
> >> least in case of Alida the overall goal of that library is exactly to
> >> overcome the need of GUI programming in algorithm development. GUIs (and
> >> also corresponding commandline tools) are directly available for each
> >> operator implemented based on Alida, and this operator can also be used
> >> within ImageJ. This post is of course not the ultimate answer to your
> >> question, but just gives you another idea of available options - if you
> >> are really willing to start programming in ImageJ.
> >> Best,
> >>
> >> Birgit
> >>
> >>
> >> On Tue, 23 Oct 2012 08:52:15 +0200, Herbie <[hidden email]> wrote:
> >>
> >>> Aaron,
> >>>
> >>> without considerable experience with Java, I see no chance that you
> come
> >>> up with what you are aiming for. Of course, you may get some plug-ins
> >>> working but they will only be parts of your big project and it will
> take
> >>> quite a while until they are of professional quality, i.e. efficient
> and
> >>> mostly flawless.
> >>>
> >>> That said, I should like to recommend learning the IJ-macro language
> >>> which provides some GUI-support that may suffice for your goals.
> >>>
> >>> For instance, I've created a rather extended system with GUI (a
> >>> commercial product) for the simulation of digital camera front-ends
> that
> >>> includes the properties of the optics, the optical low-pass and the
> >>> sensor, all written as IJ-macros. Because the time-critical parts are
> >>> IJ-routines, operational speed is sufficient and won't be much higher
> if
> >>> programmed in Java.
> >>>
> >>> For a beginner, a comparable system will take many month to program and
> >>> especially to test and to refine, when using the IJ-macro language.
> >>>
> >>> I hope that the above will help with estimating the required effort in
> >>> your case.
> >>>
> >>> Best
> >>>
> >>> Herbie
> >>> _________________________
> >>> On 23.10.12 00:53, Aaron Hendrickson wrote:
> >>>> Thank you all for your responses so far.  To answer your question
> Adam,
> >>>> I
> >>>> am an engineer for a goverment facility that uses a large volume of
> >>>> imaging
> >>>> devices (high-speed, infrared, etc)  a big issue within our community
> to
> >>>> to
> >>>> standardize a series of proceures for evaluating/verifying the
> >>>> performance
> >>>> of the electro-optical devices.  As a result of extensive research, I
> >>>> have
> >>>> created a series of testing procedures for performing these
> >>>> experiments.
> >>>>  The reason why I am trying to work towards a user friendly gui that
> >>>> the
> >>>> user can interact with is because the goal I am aiming towards is to
> >>>> provide to several other similar facilities a program to use in
> >>>> evaluating
> >>>> their own imaging devices.  I figured this would make it a lot easier
> >>>> to
> >>>> use (and a lot more work for me!).  One reason why I have stuck with
> >>>> imageJ
> >>>> is because the document I wrote is specifically geared towards using
> >>>> image
> >>>> to processing and measuring all my test images.  Another major reason
> >>>> is
> >>>> that ImageJ is open source and could be distributed to any facility
> >>>> that
> >>>> wanted it for free.  The general consensus is that this would be a
> huge
> >>>> undertaking for someone like myself with virtually no background in
> >>>> programming.....and the consensus is right.  I figured it would be a
> lot
> >>>> of
> >>>> work but I would figure it out on my own (unlikely).  Anyways, I would
> >>>> be
> >>>> more than glad to provide some of the procedures to the list to view
> if
> >>>> anyone is curious in attempting to help me with this.  I opted not to
> >>>> ask
> >>>> list members to help me tackle this because I felt like it was too big
> >>>> of
> >>>> a project to simply ask people to help me do.  Plus I find ImageJ to
> be
> >>>> a
> >>>> very useful resource for image processing and I would love to learn
> how
> >>>> to
> >>>> write quality plugins for extending its capabilities.  But I realize
> >>>> this
> >>>> dream is a long way down the road if I go that route.  Anyways that my
> >>>> long
> >>>> drawn out story.  Any thoughts?
> >>>>
> >>>
> >>>> On Mon, Oct 22, 2012 at 5:56 PM, Adam Hughes<[hidden email]>
> >>>> wrote:
> >>>>
> >>>>> IMHO, this would be a larger undertaking than you're probably
> >>>>> anticipating
> >>>>> at this point, especially with no GUI programming background.
> >>>>>
> >>>>> Why is it that you think the GUI would be helpful?  If you elaborate
> >>>>> some
> >>>>> more on the project you are trying to achieve, it may be possible for
> >>>>> some
> >>>>> of the list to give you ideas on how to do this within the confines
> of
> >>>>> ImageJ, and its default GUI.
> >>>>>
> >>>>> On Mon, Oct 22, 2012 at 3:01 PM, Aaron Hendrickson<[hidden email]
> >>>>>> wrote:
> >>>>>
> >>>>>> Hi everyone,
> >>>>>>
> >>>>>> I am doing a lot of work with radiometric performance testing of
> >>>>>> electro-optical systems.  In short I capture large sets of test
> >>>>>> images
> >>>>> from
> >>>>>> the imaging devices I want to characterize and then perform all the
> >>>>>> data
> >>>>>> reduction processing, and measurements using ImageJ.  While ImageJ
> >>>>>> has
> >>>>> been
> >>>>>> an amazing software for doing all my data reduction, the one problem
> >>>>>> I
> >>>>> have
> >>>>>> ran into the large amount of time it takes me to do all the data
> >>>>> reduction
> >>>>>> by hand.  Most of the data reduction I am referring to is creating
> >>>>>> master
> >>>>>> images from large image stacks (for example creating a median or
> mean
> >>>>>> master image from a stack of 200 test images).  Anyways,  after
> >>>>>> looking
> >>>>>> around online I stumbled into the custom version of ImageJ known as
> >>>>>> AstroImageJ and quickly realized this is exactly what I need.  The
> >>>>>> goal I
> >>>>>> need to work towards is creating a set of custom plugins for doing
> all
> >>>>>> my
> >>>>>> image processing and making a user friendly gui which can be used by
> >>>>> many.
> >>>>>>  So to my question......I have no programming background and am
> trying
> >>>>>> to
> >>>>>> learn how to write ImageJ plugins and create a gui from which I can
> >>>>> select
> >>>>>> directories where my test images are located and allow the user to
> >>>>>> check
> >>>>>> off checkboxes for each type of test they want to perform (by the
> >>>>>> way....many of the processing procedures I am doing originated from
> >>>>>> astronomy and are seen in astroImageJ).  I know this is a rather
> >>>>>> enormous undertaking for someone with little programming language
> and
> >>>>>> am
> >>>>>> not sure where to start.  I purchased the "Digital Image Processing"
> >>>>>> book
> >>>>>> by Burger and Burge which helps teach the reader writing plugins in
> >>>>> ImageJ,
> >>>>>> however I don't have a good enough background to actually use this
> >>>>>> book.
> >>>>>>  Does anyone have any suggestions for me to get started?  This is a
> >>>>>> challenging situation for me because I know all the processing
> >>>>>> pipelines
> >>>>> I
> >>>>>> need to perform but no way to implement it in a time friendly
> manner.
> >>>>>  Any
> >>>>>> suggestions would be greatly appreciated.
> >>>>>>
> >>>>>> Thanks,
> >>>>>>
> >>>>>> Aaron.
> >>>>>>
> >>>>>> --
> >>>>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >>>>>
> >>>>
> >>>> --
> >>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >>>>
> >>>
> >>> --
> >>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >>
> >> --
> >> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

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