I actually started work on an OpenCV wrapper using Cython a couple of
months ago. I got about 25% complete but then got busy with other
things. I was real carefully about releasing the GIL whenever possible
to make multi-core usage a reality. In some basic tests, the
performance was on par with using opencv from pure C (more or less).
I have since been wanting to get back to working on the wrapper, but
I've been toying with the idea of instead of just wrapping the OpenCV
array type and providing functions to convert to and from numpy
arrays, to use a numpy array as the base data type (perhaps through
subclassing or a hidden attribute; i havent yet decided) and
dynamically creating/updating OpenCV array headers that point to the
numpy data. I think this approach would be more natural and pythonic
(at a small cost for speed). It would also eleminate the need to wrap
the entire opencv library as simple manipulations can just be done
with numpy or scipy.ndimage
I have some free time now again, and I could ramp back up my work on
this or perhaps merge the work into this project if the devs show
You can take a look at the current code here:
On Sep 25, 11:21 am, Stéfan van der Walt
2009/9/25 Damian Eads
Have you considered LIBCVD as an alternative to OpenCV? It is highly optimized for frame-rate real-time applications but also has a nice, succinct, simple (almost pythonic) syntax.
What is the feature scope of CVD compared to OpenCV?