Good languages/packages for Computer Vision?

25Dec08

I ran across a post on Justin Domke’s weblog on moving away from Matlab and into Scala. I got kind of excited, because I think it’s about time I tried something other than Matlab for Computer Vision/Image Processing/Machine Learning. (See my comments on Justin’s post.)

So I went ahead to try to learn something about Scala and ran into discussions on JRuby, JPython, Groovy. From what I understand, these languages all have implementations on top of the JVM (Though just drop the “J” and we have the regular Ruby and Python without running on the JVM). Oh, and it seems that most of them also offer the option of compiling your code. Each language has its own quirks and communities, which I haven’t learned too much about yet. I ran across a pretty instructive interview given by Bill Venners on Scala which helped a lot. He clarifies that one of the crucial differences between Scala and the other scripting languages mentioned is that it features static type-checking. (It also has a bunch of other features, such as full support for functional programming, object-orientation etc, but that’s kind of beyond me right now.) I guess it’s also important that I point out that these languages can interface with Java libraries in a transparent manner.

Of course, to make things more interesting, besided Scala, we can just use C/C++ or Python taking advantage of the OpenCV library or others (see comments contributed on Justin’s post). A lot of the languages will allow for overloading operators (or just using the operators as functions), while the scripting languages allow for easier and faster prototyping.

There a lot of things going on when choosing one of these options, but I would like to give Scala a try. I appreciate the fact that it can take advantage of the Java libraries and generates .class files, that just need a JVM to run on any platform. (And I do like the idea of static type-checking, though functional programming still makes me dizzy.) I would need to get some know-how on nice libraries; some that I’ve heard/thought about: ImageJ, Weka, JAI (but I’ve never tried them out).

I shouldn’t forget to mention Octave and Scilab, which are the open alternatives to Matlab, with very similar languages. They’re able to substitute Matlab, but will have less libraries available and the same language limitations.

If anyone actually sees this and has any suggestions, or corrections on my misconceptions, I’d really like to hear them.

thanks!

Joao.



5 Responses to “Good languages/packages for Computer Vision?”

  1. 1 jvbsoares

    Just found a very interesting post comparing C++ and Java for Computer Vision, by Sima Badawi: http://samibadawi.blogspot.com/2008/09/computer-vision-c-vs-java-review.html

  2. If you are interested in java-based computer vision, you should take a look at ImageJ (http://rsbweb.nih.gov/ij/) which provide a large set of image processing/analysis tasks. All the functions are accessible from java or from a scripting language build on java, as jython or jruby as you mentionned. An good fork is Fiji (http://pacific.mpi-cbg.de/wiki/index.php/Main_Page) which provide ImageJ + various scripting language included. Even a good modern lisp (clojure) is present.

  3. I forgot to say, that i’im in the same situation, looking for a perfect language build on the jvm for computer vision tasks. My wish would be a Haskell implementation over the jvm.

  4. 4 jvbsoares

    Hi, Frédéric,

    Yes, I agree ImageJ should be a good place to start for Java. I wasn’t aware of Fiji, thanks for the pointer. (I still need to play a bit more with Scala, though.)

    Google pointed me to Jaskell… wouldn’t that work for you? Really learning to use functional programming would be too big a step for me, but good luck!

    best regards,
    Joao.

  5. I was aware of Jaskell and just need some time to make some experiments with it. As final words, there is a page that tries to accumulate most of the languages on the JVM : http://www.is-research.de/info/vmlanguages/

    Fred


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: