development direction of OpenCV elements
david at rothlis.net
Tue Dec 2 05:12:09 PST 2014
On 26 November 2014 at 13:58, hubbup <hubbup at gmail.com> wrote:
> There are OpenCV elements in the bad plugin.
> I want to know the development direction of the OpenCV elements.
I'm not a GStreamer developer and I don't speak for the project, but my
own experience with the OpenCV elements is that they are at best a proof
of concept. (As are many of the high-level operations in OpenCV itself,
but that's a tangent -- I only hope that the guy from the automated
missile guidance company who was posting questions on this list a few
weeks ago about OpenCV face recognition wasn't serious.) :-/
Anyway image processing in practice (in my experience) needs gluing
together so many different operations that writing a separate GStreamer
element for each operation would be way too much effort -- what I ended
up doing is ending my GStreamer pipeline with an `appsink`, grabbing
frames from that, doing the image processing in python code, and feeding
it into an `appsrc` in another GStreamer pipeline.
> 1. Should an element contain only one OpenCV function?
> (I think cvdilate and cverode can be merged and
> cvsobel and cvlaplace can be merged)
That raises an interesting question about the backward compatibility
guarantees of plugins in "bad". Can you just remove an element
altogether? I don't know.
> 2. Do we have any plan to support OpenCV 2.x or OpenCv 3.x?
> (OpenCV 2.X recommends to use "Mat" format rather than "Iplimage".)
Presumably the "Mat" API is C++ rather than C. Presumably it's possible
to write a GStreamer plugin in C++, but even if the GStreamer OpenCV
plugin does have a maintainer, they may not be willing to test &
maintain such a change on all platforms.
If you were going to put the effort into this I'd suggest something more
ambitious whereby you have a single element and the actual OpenCV
operation is configurable via properties. But getting the caps right
depending on what properties you set might be difficult. Oh well.
More information about the gstreamer-devel