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 |
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 > |
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 |
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 |
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 > |
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 >> > |
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. |
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 |
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 |
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 > |
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/ |
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.
|
Free forum by Nabble | Edit this page |