24 comments

[ 3.3 ms ] story [ 42.3 ms ] thread
Great post, I've been looking to work with CV and was plannin g on using OpenCV with a python interface, but after your post I think I'll start with SimpleCV. as you said if the only limitation is speed, then I can port it to pure C for OpenCV.

You might want to change the videos on the Demos page as youtube is saying the uploader has closed their account.

Now its time to experiment

Thanks for expanding on our original post. I've been meaning to give SimpleCV a spin for a while, we're big Python fans in Fixational. What's the best way to contribute?
Best way to contribute? Was this a serious question? I'm not affiliated with simplecv but if I had to guess I would say:

https://github.com/ingenuitas/SimpleCV

A more charitable interpretation is "What do you guys need the most help with?" In that respect, the Github page is not immediately helpful.
Thanks, yes it was a genuine question!
We're in the process of moving our outstanding tickets from SourceForge to github. The list of tickets is here: http://sourceforge.net/p/simplecv/tickets/

We will probably complete the move after the next release. If you are interested in helping I can suggest a lot of smaller projects. We always willing to take on outstanding short demos too.

I know this is going to put me in the minority but the download iconset for simplecv (OSX/Windows/Ubuntu) is one of my biggest pet peeves. The worst offenders will use the Ubuntu logo to lead to a generic linux page. Its slightly less annoying that clicking the ubuntu link leads to downloading a Debian package file.
Its slightly less annoying that clicking the ubuntu link leads to downloading a Debian package file

If it shouldn't lead to a .deb file what should it lead to? I take the Ubuntu logo to mean they tested it on Ubuntu.

Before this post inspires people to go on a crazy I-can-do-computer-vision-the-hard-way binge and impulse-buy O'Reilly's (excellent) "Learning OpenCV", the second edition is being released sometime this month so you may want to hold off:

http://shop.oreilly.com/product/0636920022497.do

Are you affiliated with the book/authors?
Negatory.
I did not mean to be hostile. I was just curious about the relationship if any...
That's okay :) It is a valid concern. I picked up the original during the Dennis Ritchie memorial sale and found it to be worth the time/money.
Matlab's 3D rendering speeds are disgustingly slow...
How does it compare to open-source Matlab alternatives such as Gnu/Octave?
Naturally because it's on "simplecv.tumblr.com" this is pretty biased.

But some glaring omissions

1) You can compile Matlab to C++ code which is much faster.

2) With respect to Portability there is the glaring omission of Octave (nor to mention there is MATLAB for unix systems). (I guess that also counts for the price issue). I'm not a MATLAB guru, but in the couple of times I've used it, it seems like MATLAB minus the handy dandy documentation and IDE.

3) Debugging in Matlab's ID is so easy a 5 year old can do it. The variables are all there; you can double click on any to see their contents. Debugging in a shell in my experience is a much bigger PITA.

4) I didn't look at their documentation, but I honest really doubt it's better then MATLAB's. I've never seen documentation so well written in an open source project.

Is compiled matlab code much faster? when I did it in the past it wasn't, My understanding was that it's doing the same thing, just without parsing the matlab source code, which isn't that slow anyways. Similarly, compiling python to C using cython by itself, is not faster - Compiling code to native machine code by itself doesn't do anything, unless you do something different, like declare the types, or unroll loops, etc.. The overhead of scripting languages is generally in the dynamism, unless you optimize that out in the compile step, you won't get speedups.

there are nice debugging environments for python, look at any python IDE, or look at spyder for this sort of work.

python plugs into general purpose tools much better - this is one of the main reasons I gave up matlab for python after using matlab for 10 years in school, all the way through into my PhD thesis.

Since I learned about openCV (and python), I don't get why people still use MATLAB for computer vision.

I believe MATLAB is probably very useful for control systems (with Simulink) or signal processing or any very special case for which there is a unique MATLAB toolbox.

Why is it still so much used in universities? Does Numpy/Scipy cover MATLAB scientific/numerical computing?

Universities usually don't use "turnkey" solutions, because the point is to actually implement algorithms, that are hidden behind Simple/OpenCV method calls. Matlab, being a very fast numeric platform, most CS students know, is perfect for that purpose.

The algorithms we implemented in CV classes on the University were pretty performance sensitive - enough that running them in Octave instead of Matlab made them run for 15min+. Python with NumPy was much worse.