Unfortunately we don't have plans to release C# support in the 3.0 release, because nobody is working on it. So, you should probably continue to use EmguCV. It is not an "official" wrapper, but it seems that it is stable enough, and it provides good support.
And here is some more information about the C# support in OpenCV. There was an attempt to enable the use of OpenCV from Mono/.NET, see https://github.com/Itseez/opencv/pull/604 . This wasn't yet merged, since it needs some improvements, but guys may finish it by the 3.0 release. It is not exactly what is asked, but it actually allows you to call OpenCV from C#.
And I think that we'll have "simple wrapper", simply because we don't want to have/maintain two versions of API. All OpenCV wrappers are autogenerated from the C++ one, and this is good.
- It allows to have always up-to-date wrappers for free, without any manual work. Somebody adds new C++ class of function, and it is immediately available in all languages.
- API is similar between languages, so you can switch easily between projects.
Of course in some languages [almost] everything is a class, like in Java or C#. And yes, in Java we have Core
and Imgproc
classes, that encapsulate free functions. We'll have something like that in C#. But we will not design a separate hierarchy of classes for every language, otherwise it will be impossible to maintain (keep aligned with evolving default C++ API).
Finally, OpenCV itself will become more object-oriented (in some sense). You're probably familiar with the cv::Algorithm
concept, and all the new functionality will likely be organized this way. The library will remain flat, no deep nested namespaces and complicated class hierarchies, but all high-level algorithms will be classes. We hope that such design will simplify the library usage, and it will be reflected in the wrappers.