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.
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?
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.
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:
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.
I up voted this before I noticed the author linked to one of my projects http://labs.radiantmachines.com/beard/. A neckbeard detector in 25 lines of Python :)
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.
24 comments
[ 3.3 ms ] story [ 42.3 ms ] threadYou 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
https://github.com/ingenuitas/SimpleCV
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.
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.
http://shop.oreilly.com/product/0636920022497.do
http://shop.oreilly.com/product/0636920024057.do
Full disclosure, I am one of the authors.
...just in case you also couldn't click or copy the link from the article
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.
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.
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?
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.