We’ve recently moved our retinal vessel segmentation project to Sourceforge. (The new website can be found at http://retinal.sourceforge.net/) . Sourceforge has a handy recent set of features called Hosted Apps, which includes the Mediawiki environment we used for the website.

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.



Hello world!


This is the first post. Will there be others?