Login  Register

Writing a Custom version of ImageJ

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options Options
Embed post
Permalink
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Writing a Custom version of ImageJ

Aaron Hendrickson
42 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Adam Hughes
52 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Aaron Hendrickson
42 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

kacollins
23 posts
Hi Aaron,
     As a note, AstroImageJ is also open source. Since it seems to be close to what you need, you might consider starting with AstroImageJ rather than ImageJ to build your custom version. However, I do agree with others that either way this would be a huge undertaking, especially without much prior programming experience. Another issue with a custom version of ImageJ (or AstroImageJ) is that you probably need to be able to rebuild the custom version with new releases of base ImageJ. We (mostly) solve this problem by using a scripting language to customize new versions of base ImageJ before rebuilding it along with our custom plugins into a new release of AstroImageJ. This method is a little more inconvenient than writing direct Java code because you need to write script code to implement Java code changes in the ImageJ source code (the custom plugins where most of the AstroImageJ functionality resides are of course written directly in Java).
     If you do have suggested changes to AstroImageJ that would make it more useful to you, and the changes are useful to the general user, we will add them to our new feature request list.  There is a relatively new AstroImageJ specific nabble forum at http://astroimagej.1065399.n5.nabble.com/ where you can request new AstroImageJ features and ask AstroImageJ specific questions.

Karen Collins
University of Louisville
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Herbie-2
38 posts
In reply to this post by Aaron Hendrickson
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Birgit Möller
22 posts
In reply to this post by Aaron Hendrickson
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Alexandre Dufour
11 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Richard VanMetter
27 posts
In reply to this post by Aaron Hendrickson
Aaron -
As has already been stated, ImageJ has both macro and plugin capabilities. While plugin programming would be a big step for someone without previous programming experience, the macro language may be a workable path for you. This is particularly true because there is a macro-recording feature built into ImageJ. If you can do the image analysis you require with ImageJ manually, you can create most of the macro you will need to automate it.

There is well-written macro documentation available at the ImageJ website (see: http://imagej.nih.gov/ij/developer/index.html). I particularly recommend you take a look at the Introduction to Macro Programming and Macro Programming in ImageJ (Kota Miura). There are also many contributed macros on the same webpage, which may not do what you need, but will provide useful examples from which to learn macro-programming techniques. Macros can be installed in ImageJ to appear on the drop-down plugins menu and can easily be shared with others.

From your posting, it sounds like you are interested in developing some new image analysis skills. I encourage you to give ImageJ macros a try. In my experience, the reward is well-worth the effort required.

Good Luck,
Richard

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

Re: Writing a Custom version of ImageJ

Aaron Hendrickson
42 posts
In reply to this post by Alexandre Dufour
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

ctrueden
1670 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

Aaron Hendrickson
42 posts
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
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: Writing a Custom version of ImageJ

ctrueden
1670 posts
Hi Aaron,

> Thank you for your suggestion Curtis.  I am starting to wonder if I
> should postpone this project until IJ2 is closer to being released.

Up to you, based on your needs. You can browse the ImageJ2 project roadmap
at:
    http://developer.imagej.net/downloads
    http://developer.imagej.net/roadmap
    http://trac.imagej.net/roadmap

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

Sure, it is no different than any other programming project. People have
solicited for developers on the ImageJ list before; it is a good place to
advertise an ImageJ-related job opening after all. Maybe you would have
some success with that.

If you do move forward with a custom version of ImageJ, I would urge you to
use an open development process, put your code on GitHub, and remain
communicative. Ask on the mailing list about major development directions
(someone else may have already implemented what you need), etc. The
scientific method demands open tools [1].

Regards,
Curtis

[1] http://en.wikipedia.org/wiki/Open_science


On Thu, Nov 1, 2012 at 6:02 AM, Aaron Hendrickson <[hidden email]> wrote:

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

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