Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled by Visual Studio, Xamarin Studio and Unity, it can run on Windows, Linux, Mac OS X, iOS, Android and Windows Phone.
- 2016-05-01 Emgu.CV-3.1.0 for Xamarin is now also available to be purchased in Xamarin Component Store. Demo version that supports Android x86 and iOS simulator can be downloaded for free.
- 2016-02-06 Emgu.CV-3.1.0 final release is available in sourceforge. This version added 64 bit Android (x86_64, arm64_v8) support for Xamarin. See change log and known issues.
- 2015-07-12 Emgu.CV-3.0.0 final release is available in sourceforge. This is the first stable release based on Open CV 3.0 final. See change log and known issues.
- 2015-05-17 Emgu.CV-3.0.0-rc1 is available in sourceforge. This version adds support for Windows Phone (8.1 is required) and Unity 5.0. See change log and known issues.
- 2015-03-08 Added support for Raspberry Pi 2. Build instruction is available here. Happy hacking with this credit card size quad-core computer for only $35 !!!
- 2015-01-17 Added 64bit iOS support (through Xamarin iOS unified SDK). The iOS packages (2.4.10-unified & 3.0.0-beta-unified) are available for download for Emgu CV iOS commercial license owners.
- 2014-12-06 Emgu.CV-3.0.0-alpha is available in sourceforge. See change log and known issues.
- 2014-12-06 Emgu.CV-2.4.10 is available in sourceforge. See change log and known issues.
- 2013-08-31 Added support to Windows 8 Store App (x86, x64) as part of Windows commercial release. Android version is now stable for commercial release.
- 2012-09-16 Emgu.CV-2.4.2 is available in sourceforge. See change log and known issues.
- 2012-05-26 Emgu.CV-2.4.0 is available in sourceforge. This version adds support for iOS and Android. See change log and known issues.
- 2011-08-20 Emgu.CV-2.3.0 is available in sourceforge. See change log and known issues.
- 2011-02-05 Emgu.CV-184.108.40.2060 is available in sourceforge. See change log and known issues.
- 2010-12-15 Emgu.CV-220.127.116.110 is available in sourceforge. See change log and known issues.
- 2010-04-06 Emgu.CV-18.104.22.168 is available in sourceforge. It is released on the same day as OpenCV 2.1! In this release we have keep up our cross platform promise and release binaries for 64-bit windows, as well as 32 & 64 bit debian package for Unbuntu and 32 bit rpm package for Fedora 12! See change log and known issues.
- 2009-10-25 Emgu.CV-22.214.171.124 is available in sourceforge. Welcome to the first .NET wrapper that is compatible with OpenCV 2.0! See change log and known issues.
- 2009-07-12 Emgu.CV-126.96.36.199 Alpha is available in sourceforge. This version is built with OpenCV SVN 1918 and is not recommend for production environment. See change log and known issues.
|Name||Emgu CV (Open Source)||Emgu CV for Windows (Commercial Optimized)||Emgu CV for Unity|
|Development tools||Visual Studio 2010 and up||Visual Studio 2010 and up||Visual Studio 2013 and up||Unity 3D Pro v5.1 and up|
|Platform||Windows||Windows||Windows 8.1 Store app *||Windows Desktop Standalone|
|Supported CPU Architecture||i386, x64||i386, x64||i386, x64||i386 (Editor & Standalone), x64 (Standalone)|
|CUDA GPU Processing||X||X|
|Compiled with Intel C++ Compiler,TBB & IPP||X||X||X|
|License||GPL||Commercial License||Commercial License|
- Windows 8.1 Store App version is included in the Windows Commercial release
- Windows RT is currently NOT supported
|Name||Emgu CV for Xamarin iOS Bussiness Version+||Emgu CV for Xamarin Android Bussiness Version+||Emgu CV for Windows Phone||Emgu CV for Unity|
|Requirement||Xamarin iOS Bussiness Version+||Xamarin Android Bussiness Version+||Visual Studio 2013 and Windows Phone 8.1||Unity 3D v5.1 Pro / Free version|
|Platform||iOS (iPhone, IPad, IPod Touch)||Android||Windows Phone 8.1||iOS (iPhone, IPad, IPod Touch)||Android||Windows Phone 8.1|
|Supported Device||armv7, armv7a, arm64||armeabi, armeabi-v7a, arm64-v8a, x86, x86_64||arm||armv7, armv7a, arm64||armeabi-v7a, x86||arm|
|Supported Simulator||i386, x64||armeabi, armeabi-v7a, arm64-v8a, x86, x86_64||x86||i386||armeabi-v7a, x86||x86|
|CUDA GPU Processing||X||X||X||X||X||X|
|OpenCL 1.2 (GPU&CPU)||X||(on supported devices)||X||X||(on supported devices)||X|
|License||Commercial License||Commercial License||Commercial License||Commercial License|
OSX, Linux, Unix
For OSX, Linux and Unix platform, you need to compile the binary from source.
|Name||Emgu CV (Open Source)||Emgu CV for OSX, Linux Unix(Commercial License)||Emgu CV for Unity|
|Development Tools||Xamarin Studio or MonoDevelop||Xamarin Studio or MonoDevelop||Unity 3D Pro v5.1|
|OSX||x86 & x64 (Editor & Standalone)|
|CUDA GPU Processing||X|
|License||GPL||Commercial License||Commercial License|
Advantage of Emgu CV
Emgu CV is written entirely in C#. The benefit is that it can be compiled in Mono and therefore is able to run on any platform Mono supports, including iOS, Android, Windows Phone, Mac OS X and Linux. A lot of efforts has been spent to have a pure C# implementation since the headers have to be ported, compared with managed C++ implementation where header files can simply be included. But it is well worth it if you see Emgu CV running on Fedora 10! Plus it always gives you the comfort knowing that your code is cross-platform.
Cross Language and comes with example code
Emgu CV can be used from several different languages, including C#, VB.NET, C++ and IronPython. On this wiki, we provide examples for all those languages, which are available from the Examples section on Tutorial page. Our Discussion Forum is also available if you have any questions related to your favourite programming language.
- Image class with Generic Color and Depth
- Automatic garbage collection
- XML Serializable Image
- XML Documentation and intellisense support
- The choice to either use the Image class or direct invoke functions from OpenCV
- Generic operations on image pixels
Emgu CV has two layers of wrapper as shown below
- The basic layer (layer 1) contains function, structure and enumeration mappings which directly reflect those in OpenCV.
- The second layer (layer 2) contains classes that mix in advantanges from the .NET world.