Image Processing in Art (Is Imagej the right tool?)

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

Image Processing in Art (Is Imagej the right tool?)

Derin Korman
Hello Everyone,

I am a Teaching Assistant at Harvard's Visual and Environmental
studies and I have several projects that need image processing. They
mainly revolve around Camera/Image culture, authorship, questions of
singularity (not the positivist one).

I have no previous programming experience apart from some Actionscript
and modifying some github projects, I was wondering if you had a
suggestion as to what language to learn. Processing offers some object
import functions but I couldn't tell if it would suffice(if it does,
that's great as it encompasses some libraries that would ease some
work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
various image processing libraries, Matlab I know to be very powerful
but one might say it is too difficult a hill to climb before I reach
image processing.

 example tasks: averaging 1000+ images, doing subtraction/difference
calculation, generation of random images, and extracting sequential
pixels/parts from images and combining them in another
([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])

Best,
-derin
Visual and Environmental Studies
Harvard University
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

josh foster
ImageJ already has subtraction/difference calculation functions built-in to
the basic program. With some programming in Java, you should be able to
easily write plugins that can do everything else you described.

Josh

On Sun, Oct 2, 2011 at 1:32 PM, Derin Korman <[hidden email]> wrote:

> Hello Everyone,
>
> I am a Teaching Assistant at Harvard's Visual and Environmental
> studies and I have several projects that need image processing. They
> mainly revolve around Camera/Image culture, authorship, questions of
> singularity (not the positivist one).
>
> I have no previous programming experience apart from some Actionscript
> and modifying some github projects, I was wondering if you had a
> suggestion as to what language to learn. Processing offers some object
> import functions but I couldn't tell if it would suffice(if it does,
> that's great as it encompasses some libraries that would ease some
> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
> various image processing libraries, Matlab I know to be very powerful
> but one might say it is too difficult a hill to climb before I reach
> image processing.
>
>  example tasks: averaging 1000+ images, doing subtraction/difference
> calculation, generation of random images, and extracting sequential
> pixels/parts from images and combining them in another
> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])
>
> Best,
> -derin
> Visual and Environmental Studies
> Harvard University
>
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Leonardo Guizzetti
In reply to this post by Derin Korman
Hi derin,

I have no previous programming experience apart from some Actionscript
> and modifying some github projects, I was wondering if you had a
> suggestion as to what language to learn. Processing offers some object
> import functions but I couldn't tell if it would suffice(if it does,
> that's great as it encompasses some libraries that would ease some
> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
> various image processing libraries, Matlab I know to be very powerful
> but one might say it is too difficult a hill to climb before I reach
> image processing.
>

Since you mentioned you have some basic ActionScript knowledge, that would
be enough to get your feet wet with a simple ImageJ macro. Writing these
functions in C++ can be done but would be very difficult. MatLab is much
easier to start with than C++ because it provides an editor and easy user
interface for visualizing your data, but you would need to make sure that
you can secure licensing for each of your students (Harvard must have a bulk
licensing system). Matlab might be a bit overkill, but can do the task.

 example tasks: averaging 1000+ images, doing subtraction/difference
> calculation, generation of random images, and extracting sequential
> pixels/parts from images and combining them in another
> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])
>
>
ImageJ has a batchmode that can work with the thousands of files
(sequentially I believe). From memory, macros can also do the pixel
access/writing that you'd need so you can also generate random images.

Have a look through the ImageJ macro language here (
http://rsbweb.nih.gov/ij/docs/macro_reference_guide.pdf ) for the latest
version (1.45p). It's a quick and easily digestible intro to writing macros
and shows the glossary of commands you can access.

If you desire to have even more raw control of your image data that you
can't implment in a macro, you may write a custom plugin (using Java) that
ImageJ can compile and run. The advantage to plug-ins is that they are
faster and can have more power, while macros are much quicker to write.


> Best,
> -derin
> Visual and Environmental Studies
> Harvard University
>

Cheers,

Lenny

Ph.D. Candidate (Medical Biophysics)
Lawson Health Research Institute
University of Western Ontario
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

dscho
In reply to this post by Derin Korman
Dear Derin,

On Sun, 2 Oct 2011, Derin Korman wrote:

> I am a Teaching Assistant at Harvard's Visual and Environmental studies
> and I have several projects that need image processing. They mainly
> revolve around Camera/Image culture, authorship, questions of
> singularity (not the positivist one).
>
> I have no previous programming experience apart from some Actionscript
> and modifying some github projects, I was wondering if you had a
> suggestion as to what language to learn. Processing offers some object
> import functions but I couldn't tell if it would suffice(if it does,
> that's great as it encompasses some libraries that would ease some
> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
> various image processing libraries, Matlab I know to be very powerful
> but one might say it is too difficult a hill to climb before I reach
> image processing.
>
>  example tasks: averaging 1000+ images, doing subtraction/difference
> calculation, generation of random images, and extracting sequential
> pixels/parts from images and combining them in another
> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])

I agree with Leonardo that the easiest way to get started is by using
ImageJ's Macro language. The option to record macros from your mouse
clicks is not the least reason why it is convenient.

But I would also like to throw in a word of caution:

So far, ImageJ has mostly been used primarily in contexts where the pixel
intensities are more or less guaranteed to be linear with the values we
want to measure (e.g. photon counts in both biology and astronomy or
electron counts in material sciences).

However, when you are looking at works of art, at least a basic knowledge
of color spaces and color coding is necessary. See e.g.
http://www.4p8.com/eric.brasseur/gamma.html for a compelling demonstration
that we see something else than what we think we see.

That last point is probably extremely important for your averaging task to
avoid nasty surprises down the road.

Ciao,
Johannes
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

David Webster
In reply to this post by Derin Korman
Derin,

Actionscript is a superset of javascript, so you ought to be able to use
that as well as imagej's macro language.

If you are refering to OpenCV, my expeience is that the libs weren't really
very portabel. This is why I started with ImageJ. As a long time C/C++
programmer,  I can say that Java and imageJs plugins are easier to learn how
to use.

David Webster


On Sun, Oct 2, 2011 at 10:32 AM, Derin Korman <[hidden email]>wrote:

> Hello Everyone,
>
> I am a Teaching Assistant at Harvard's Visual and Environmental
> studies and I have several projects that need image processing. They
> mainly revolve around Camera/Image culture, authorship, questions of
> singularity (not the positivist one).
>
> I have no previous programming experience apart from some Actionscript
> and modifying some github projects, I was wondering if you had a
> suggestion as to what language to learn. Processing offers some object
> import functions but I couldn't tell if it would suffice(if it does,
> that's great as it encompasses some libraries that would ease some
> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
> various image processing libraries, Matlab I know to be very powerful
> but one might say it is too difficult a hill to climb before I reach
> image processing.
>
>  example tasks: averaging 1000+ images, doing subtraction/difference
> calculation, generation of random images, and extracting sequential
> pixels/parts from images and combining them in another
> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])
>
> Best,
> -derin
> Visual and Environmental Studies
> Harvard University
>
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Derin Korman
It's been a while since I did any Actionscripting so familiarity is
not crucial at this point, more the learning curve and versatility.
Luckily, processing is also java, so I can run java within it if I
find imagej stack functions to be more useful. Thanks a lot for your
input

Best,
-derin



On Mon, Oct 3, 2011 at 11:59 PM, David Webster <[hidden email]> wrote:

> Derin,
>
> Actionscript is a superset of javascript, so you ought to be able to use
> that as well as imagej's macro language.
>
> If you are refering to OpenCV, my expeience is that the libs weren't really
> very portabel. This is why I started with ImageJ. As a long time C/C++
> programmer,  I can say that Java and imageJs plugins are easier to learn how
> to use.
>
> David Webster
>
>
> On Sun, Oct 2, 2011 at 10:32 AM, Derin Korman <[hidden email]>wrote:
>
>> Hello Everyone,
>>
>> I am a Teaching Assistant at Harvard's Visual and Environmental
>> studies and I have several projects that need image processing. They
>> mainly revolve around Camera/Image culture, authorship, questions of
>> singularity (not the positivist one).
>>
>> I have no previous programming experience apart from some Actionscript
>> and modifying some github projects, I was wondering if you had a
>> suggestion as to what language to learn. Processing offers some object
>> import functions but I couldn't tell if it would suffice(if it does,
>> that's great as it encompasses some libraries that would ease some
>> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
>> various image processing libraries, Matlab I know to be very powerful
>> but one might say it is too difficult a hill to climb before I reach
>> image processing.
>>
>>  example tasks: averaging 1000+ images, doing subtraction/difference
>> calculation, generation of random images, and extracting sequential
>> pixels/parts from images and combining them in another
>> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])
>>
>> Best,
>> -derin
>> Visual and Environmental Studies
>> Harvard University
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Juanjo Vega
According to my experience, learning OpenCV was faster than ImageJ, but I was never able to compile it under linux, so I had to use Windows precompiled binaries.

If you don't need much user interface, it might be better to use OpenCV, but I find  java code easier to maintain.

Your example tasks are pretty basic and I think they can be achieved by any image processing library, so I recommend you to use the one you think will be esier for you.

On Oct 4, 2011, at 6:15 AM, Derin Korman wrote:

> It's been a while since I did any Actionscripting so familiarity is
> not crucial at this point, more the learning curve and versatility.
> Luckily, processing is also java, so I can run java within it if I
> find imagej stack functions to be more useful. Thanks a lot for your
> input
>
> Best,
> -derin
>
>
>
> On Mon, Oct 3, 2011 at 11:59 PM, David Webster <[hidden email]> wrote:
>> Derin,
>>
>> Actionscript is a superset of javascript, so you ought to be able to use
>> that as well as imagej's macro language.
>>
>> If you are refering to OpenCV, my expeience is that the libs weren't really
>> very portabel. This is why I started with ImageJ. As a long time C/C++
>> programmer,  I can say that Java and imageJs plugins are easier to learn how
>> to use.
>>
>> David Webster
>>
>>
>> On Sun, Oct 2, 2011 at 10:32 AM, Derin Korman <[hidden email]>wrote:
>>
>>> Hello Everyone,
>>>
>>> I am a Teaching Assistant at Harvard's Visual and Environmental
>>> studies and I have several projects that need image processing. They
>>> mainly revolve around Camera/Image culture, authorship, questions of
>>> singularity (not the positivist one).
>>>
>>> I have no previous programming experience apart from some Actionscript
>>> and modifying some github projects, I was wondering if you had a
>>> suggestion as to what language to learn. Processing offers some object
>>> import functions but I couldn't tell if it would suffice(if it does,
>>> that's great as it encompasses some libraries that would ease some
>>> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
>>> various image processing libraries, Matlab I know to be very powerful
>>> but one might say it is too difficult a hill to climb before I reach
>>> image processing.
>>>
>>>  example tasks: averaging 1000+ images, doing subtraction/difference
>>> calculation, generation of random images, and extracting sequential
>>> pixels/parts from images and combining them in another
>>> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] -> [x1,y2,z3])
>>>
>>> Best,
>>> -derin
>>> Visual and Environmental Studies
>>> Harvard University
>>>
>>

------------------------------------------------------------
Juanjo Vega ([hidden email])

Unidad de Biocomputación. Laboratorio B-13.
Centro Nacional de Biotecnología. CNB-CSIC.
C\ Darwin, 3. Campus de Cantoblanco.
Universidad Autónoma de Madrid.
28049, Madrid, Spain.

http://www.cnb.csic.es
http://www.biocomp.cnb.csic.es

+34 91 585 4510

"Las mejores almas son capaces de los mayores vicios como de las mayores
virtudes, y aquellos que caminan despacio por el camino recto pueden
llegar más lejos que los que corren pero se apartan de él." - Discurso
del Método, René Descartes.
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Grant Harris
In reply to this post by Derin Korman
In addition to considering ImageJ, I would take a close look at Processing.  It is based on Java, and has its own language for creating 'sketches'.  It has some image processing functionality which can be extended (see for instance http://forum.processing.org/topic/image-processing-library).  And beyond that, it has all kinds of libraries (see  http://processing.org/reference/libraries/)  I have not used it much, but it seems to have a large following, esp. in the art world.  Good luck.  
 -- Grant Harris
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Doug S-3
In reply to this post by Derin Korman
Derin,
     I've just started using OpenCV through its python bindings, which
solves some of the issues of using c & c++. If you use c & c++ I guess
you have to be careful to to avoid memory leaks and maybe other
problems. Python is nice, its a pleasure to code in and all the memoty
management is taken care of. Python is a lot like Java but I have found
it easier and faster to to code in in terms of development time. You get
the ease of coding in python but the most expensive computations on
images are done in c/c++, and potentially even on the GPU, making it
faster in terms of the performance of the code as well. I use OpenCV as
part of a larger package called PythonXY which is a scientific computing
platform that runs on Windows. Its an easy Windows install that installs
the main framework and packages like OpenCV that you choose. Whats nice
is that, like Juanjo was talking about, it provides a nice interface,
with an interactive programming environment like MATLAB plus a good GUI
package called Qt, lots of scientific funcitonality already built in
thru numpy/scipy and nice image/histogram or other visualization stuff
built in with matplotlib. I find this interface much easier to work with
than JAVA though JAVA is a step up from using OpenCV in pure c/c++.
PythonXY does not install on Linux, but all the pieces that you would
need: nump/scipy, Qt, matplotlib and OpenCV do install on Linux. All of
these installations are easy except OpenCV, which I have not done yet
myself, but I have found several sets of instructions on how to do it on
the net. You could possibly develop the code on WIndows and end up with
cross platform python code. If you where going to distribute the code to
many linux or mac machines then looking into how the OpenCV install goes
on these platforms would be good idea.
I haven't used Processing before so I can't compare it to PythonXY or
ImageJ.
     If you're project was funded and you could afford a little bit of
money to hire me as a undergrad researcher to handle ( all or part of )
the computational side of the project, I might be able to help you out.
I am math student from the Univ of Connecticut and have done independent
study in imaging. I finished my BS and am taking time off for health
reasons and getting ready for doctoral studies and right now I am
looking for part time projects to keep going while officially out of
school. I live in Storrs, CT which is about 2 hours from Boston so
coming in physically now and then is quite possible. If you think this
could be helpful for you or the projects you're working on, don't
hestitate to send me an email, otherwise good luck on your projects and
finding the right platform.
Best,
Doug Snyder
[hidden email]



On 10/2/2011 1:32 PM, Derin Korman wrote:

> Hello Everyone,
>
> I am a Teaching Assistant at Harvard's Visual and Environmental
> studies and I have several projects that need image processing. They
> mainly revolve around Camera/Image culture, authorship, questions of
> singularity (not the positivist one).
>
> I have no previous programming experience apart from some Actionscript
> and modifying some github projects, I was wondering if you had a
> suggestion as to what language to learn. Processing offers some object
> import functions but I couldn't tell if it would suffice(if it does,
> that's great as it encompasses some libraries that would ease some
> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
> various image processing libraries, Matlab I know to be very powerful
> but one might say it is too difficult a hill to climb before I reach
> image processing.
>
>   example tasks: averaging 1000+ images, doing subtraction/difference
> calculation, generation of random images, and extracting sequential
> pixels/parts from images and combining them in another
> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] ->  [x1,y2,z3])
>
> Best,
> -derin
> Visual and Environmental Studies
> Harvard University
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Derin Korman
Thank you for your opinion on the platforms, I am not funded at the
moment but I will keep you in mind if I get funding / start looking
for programming assistance.

Best,
-derin



On Tue, Oct 4, 2011 at 11:13 PM, Doug S <[hidden email]> wrote:

> Derin,
>    I've just started using OpenCV through its python bindings, which solves
> some of the issues of using c & c++. If you use c & c++ I guess you have to
> be careful to to avoid memory leaks and maybe other problems. Python is
> nice, its a pleasure to code in and all the memoty management is taken care
> of. Python is a lot like Java but I have found it easier and faster to to
> code in in terms of development time. You get the ease of coding in python
> but the most expensive computations on images are done in c/c++, and
> potentially even on the GPU, making it faster in terms of the performance of
> the code as well. I use OpenCV as part of a larger package called PythonXY
> which is a scientific computing platform that runs on Windows. Its an easy
> Windows install that installs the main framework and packages like OpenCV
> that you choose. Whats nice is that, like Juanjo was talking about, it
> provides a nice interface, with an interactive programming environment like
> MATLAB plus a good GUI package called Qt, lots of scientific funcitonality
> already built in thru numpy/scipy and nice image/histogram or other
> visualization stuff built in with matplotlib. I find this interface much
> easier to work with than JAVA though JAVA is a step up from using OpenCV in
> pure c/c++. PythonXY does not install on Linux, but all the pieces that you
> would need: nump/scipy, Qt, matplotlib and OpenCV do install on Linux. All
> of these installations are easy except OpenCV, which I have not done yet
> myself, but I have found several sets of instructions on how to do it on the
> net. You could possibly develop the code on WIndows and end up with cross
> platform python code. If you where going to distribute the code to many
> linux or mac machines then looking into how the OpenCV install goes on these
> platforms would be good idea.
> I haven't used Processing before so I can't compare it to PythonXY or
> ImageJ.
>    If you're project was funded and you could afford a little bit of money
> to hire me as a undergrad researcher to handle ( all or part of ) the
> computational side of the project, I might be able to help you out. I am
> math student from the Univ of Connecticut and have done independent study in
> imaging. I finished my BS and am taking time off for health reasons and
> getting ready for doctoral studies and right now I am looking for part time
> projects to keep going while officially out of school. I live in Storrs, CT
> which is about 2 hours from Boston so coming in physically now and then is
> quite possible. If you think this could be helpful for you or the projects
> you're working on, don't hestitate to send me an email, otherwise good luck
> on your projects and finding the right platform.
> Best,
> Doug Snyder
> [hidden email]
>
>
>
> On 10/2/2011 1:32 PM, Derin Korman wrote:
>>
>> Hello Everyone,
>>
>> I am a Teaching Assistant at Harvard's Visual and Environmental
>> studies and I have several projects that need image processing. They
>> mainly revolve around Camera/Image culture, authorship, questions of
>> singularity (not the positivist one).
>>
>> I have no previous programming experience apart from some Actionscript
>> and modifying some github projects, I was wondering if you had a
>> suggestion as to what language to learn. Processing offers some object
>> import functions but I couldn't tell if it would suffice(if it does,
>> that's great as it encompasses some libraries that would ease some
>> work), ImageJ was recommended to my by Nitin Sampat, C++ naturally has
>> various image processing libraries, Matlab I know to be very powerful
>> but one might say it is too difficult a hill to climb before I reach
>> image processing.
>>
>>  example tasks: averaging 1000+ images, doing subtraction/difference
>> calculation, generation of random images, and extracting sequential
>> pixels/parts from images and combining them in another
>> ([x1,x2,x3][y1,y2,y3][z1,z2,z3] ->  [x1,y2,z3])
>>
>> Best,
>> -derin
>> Visual and Environmental Studies
>> Harvard University
>
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

julia
In reply to this post by Derin Korman
Hi, Derin.
I wanna recommend you to learn java. Here is Free a barocode generator, which can generate barcode images in java applications. Hope it can help you! Good luck!
http://onbarcode.com/products/java_barcode/
Reply | Threaded
Open this post in threaded view
|

Re: Image Processing in Art (Is Imagej the right tool?)

Antoinette
In reply to this post by Derin Korman
Generally speaking, a image processing component in air can be achieve via multiple .NET programming language, like Windows Forms, ASP.NET, VB.NET & C#.NET, it depends on which language you are good at.