Login  Register

Re: Writing a Custom version of ImageJ

Posted by Aaron Hendrickson on Nov 01, 2012; 11:02am
URL: http://imagej.273.s1.nabble.com/Writing-a-Custom-version-of-ImageJ-tp5000477p5000624.html

Thank you for your suggestion Curtis.  I am starting to wonder if I
should postpone this project until IJ2 is closer to being released.  It
seems like this would be a better option so that the suite of plugins I
want is written specifically for IJ2.  Just out of curiosity, suppose there
was funding available to pay an individual to write custom version of IJ or
IJ2.......do you suppose there are people that would be interested in that?
 Has that ever been done before?

Cheers,
Aaron.

On Wed, Oct 31, 2012 at 1:47 PM, Curtis Rueden <[hidden email]> wrote:

> 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
>

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