Main Page: Difference between revisions

From EMGU
Jump to navigation Jump to search
Undo revision 1202 by JessicaKoertig (talk)
 
(136 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<big>'''[[Emgu CV]]''' is a cross platform .Net wrapper to the Intel [[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 [[Compiling_with_Monodevelop|compiled in Mono]] and run on Linux / Mac OS X.</big>
<big>'''[[Emgu CV]]''' is a cross platform .Net wrapper to the [[OpenCV]] image processing library. Allowing [[OpenCV]] functions to be called from .NET compatible languages. The wrapper can be compiled by Visual Studio and Unity, it can run on Windows, Linux, Mac OS, iOS and Android.</big>


== Latest News ==
== Latest News ==
* 2011-08-20 [[Version_History#Emgu.CV-2.3.0|Emgu.CV-2.3.0]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-2.3.0|change log and known issues]].
* 2025-07-27 [[Version_History#Emgu.CV-4.11.0|Emgu.CV-4.11.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.11.0 github] and nuget. See [[Version_History#Emgu.CV-4.11.0|change log and known issues]].
* 2011-02-05 [[Version_History#Emgu.CV-2.2.1|Emgu.CV-2.2.1.1150]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-2.2.1|change log and known issues]].
* 2025-01-21 [[Version_History#Emgu.CV-4.10.0|Emgu.CV-4.10.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.10.0 github] and nuget. See [[Version_History#Emgu.CV-4.10.0|change log and known issues]].  
* 2010-12-15 [[Version_History#Emgu.CV-2.2.0.0|Emgu.CV-2.2.0.1010]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-2.2.0.0|change log and known issues]].
* 2024-05-12 [[Version_History#Emgu.CV-4.9.0|Emgu.CV-4.9.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.9.0 github] and nuget. See [[Version_History#Emgu.CV-4.9.0|change log and known issues]].
* 2010-04-06 [[Version_History#Emgu.CV-2.1.0.0|Emgu.CV-2.1.0.0]] is available in [[Sourceforge-url | 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 <b>64-bit windows</b>, as well as <b>32 & 64 bit debian package for Unbuntu</b> and <b>32 bit rpm package for Fedora 12</b>! See [[Version_History#Emgu.CV-2.1.0.0|change log and known issues]].
* 2023-09-10 [[Version_History#Emgu.CV-4.8.0|Emgu.CV-4.8.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.8.0 github] and nuget. See [[Version_History#Emgu.CV-4.8.0|change log and known issues]].  
* 2023-04-23 [[Version_History#Emgu.CV-4.7.0|Emgu.CV-4.7.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.7.0 github] and nuget. See [[Version_History#Emgu.CV-4.7.0|change log and known issues]].
* 2022-10-30 [[Version_History#Emgu.CV-4.6.0|Emgu.CV-4.6.0]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.6.0 github] and nuget. See [[Version_History#Emgu.CV-4.6.0|change log and known issues]].
* 2022-01-09 [[Version_History#Emgu.CV-4.5.5|Emgu.CV-4.5.5]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.5.5 github] and nuget. See [[Version_History#Emgu.CV-4.5.5|change log and known issues]].  
* 2021-11-07 [[Version_History#Emgu.CV-4.5.4|Emgu.CV-4.5.4]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.5.4 github] and nuget. See [[Version_History#Emgu.CV-4.5.4|change log and known issues]].
* 2021-08-08 [[Version_History#Emgu.CV-4.5.3|Emgu.CV-4.5.3]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.5.3 github] and nuget. See [[Version_History#Emgu.CV-4.5.3|change log and known issues]].  
* 2021-07-04 [[Version_History#Emgu.CV-4.5.2|Emgu.CV-4.5.2]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.5.2 github] and nuget. See [[Version_History#Emgu.CV-4.5.2|change log and known issues]].
* 2021-01-24 [[Version_History#Emgu.CV-4.5.1|Emgu.CV-4.5.1]] release is available in [https://github.com/emgucv/emgucv/releases/tag/4.5.1 github] and nuget. See [[Version_History#Emgu.CV-4.5.1|change log and known issues]].  


* 2009-10-25 [[Version_History#Emgu.CV-2.0.1.0|Emgu.CV-2.0.1.0]] is available in [[Sourceforge-url | sourceforge]]. Welcome to the first .NET wrapper that is compatible with OpenCV 2.0! See [[Version_History#Emgu.CV-2.0.1.0|change log and known issues]].
* [[Emgu CV News Archive | News Archive]]


* 2009-07-12 [[Version_History#Emgu.CV-2.0.0.0_Alpha|Emgu.CV-2.0.0.0 Alpha]] is available in [[Sourceforge-url | sourceforge]]. This version is built with OpenCV SVN 1918 and is not recommend for production environment. See  [[Version_History#Emgu.CV-2.0.0.0_Alpha|change log and known issues]].
== Platform Features ==
 
* 2009-02-25 [[Version_History#Emgu.CV-1.5.0.0|Emgu.CV-1.5.0.0]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-1.5.0.0|change log and known issues]].
 
* 2008-11-24 [[Version_History#Emgu.CV-1.4.0.0|Emgu.CV-1.4.0.0]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-1.4.0.0|change log and known issues]].
 
* 2008-09-02 [[Version_History#Emgu.CV-1.3.0.0|Emgu.CV-1.3.0.0]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-1.3.0.0|change log]].
 
* 2008-05-24 [[Version_History#Emgu.CV-1.2.2.0|Emgu.CV-1.2.2.0]] is available in [[Sourceforge-url | sourceforge]]. See [[Version_History#Emgu.CV-1.2.2.0|change log]].
 
* 2008-05-10 [http://www.emgu.com/forum Emgu CV Discussion Forum] is available at http://www.emgu.com/forum
 
== A Comparison of [[OpenCV]] Wrappers ==


=== Windows ===
{| style="text-align:center" border="1px" cellspacing="0" cellpadding="5"
{| style="text-align:center" border="1px" cellspacing="0" cellpadding="5"
!Name || Emgu CV ([[Licensing:#Commercial_License|Commercial]]) || Emgu CV (Open Source) || [http://code.google.com/p/opencvsharp OpenCVSharp] || [http://code.google.com/p/opencvdotnet/ OpenCVDotNet] || [http://www.cs.ru.ac.za/research/groups/SharperCV/ SharperCV] || [http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx Code Project]  
!Name || Emgu CV (Open Source) || colspan="2" | Emgu CV for Windows ([[Licensing:#Commercial_License|Commercial Optimized]])
|-  
|-  
! OpenCV 2.2 || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X
!Development tools || Visual Studio 2019 and up || Visual Studio 2019 and up || Visual Studio 2019 and up
|-  
|-  
! GPU Processing || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X
! Platform || Windows || Windows || UWP / Windows 8.1 Store app
|-
! Supported CPU Architecture || i386, x86_64, arm64 || i386, x86_64, arm64 || i386, x86_64
|-  
|-  
! [[Tutorial#Machine_Learning_Examples | Machine Learning]] || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X || <math>\checkmark</math>  
! CUDA GPU  Processing || x86_64 || x86_64 || X
|
! OpenCL (GPU&CPU) || <math>\checkmark</math> || <math>\checkmark</math> || X 
|-
! [https://github.com/tesseract-ocr Tesseract OCR] || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math>  
|-  
|-  
! [http://threadingbuildingblocks.org/ Intel TBB] (multi-thread) || <math>\checkmark</math> || X || X || X || X || X
! code dispatch || X || <math>\checkmark</math> || X  
|-  
|-  
! [http://software.intel.com/en-us/articles/intel-ipp/ Intel IPP] (high performance) || <math>\checkmark</math> || X || X || X || X || X
! [[Tutorial#Error_Handling | Exception Handling]] || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math>
|-
! [[Debugger Visualizer]] || <math>\checkmark</math> || <math>\checkmark</math> || X
|-
! Emgu.CV.UI || <math>\checkmark</math> || <math>\checkmark</math> || X  
|-
![[Licensing: | License]] || [[Licensing:#Open_Source_License| GPL]] || colspan="2" | [[Licensing:#Commercial_License| Commercial License]]
|}
 
* <span style="color:#009000">'''Windows UWP version is included in the Windows Commercial release''' </span>
* '''Windows Phone is no longer supported'''
 
=== Mobile Devices ===
{| style="text-align:center" border="1px" cellspacing="0" cellpadding="5"
!Name || [[Emgu CV for iOS| Emgu CV for iOS]] || [[Emgu CV for Android| Emgu CV for Android]]
|-  
|-  
! [http://software.intel.com/en-us/articles/intel-parallel-studio-xe/ Intel C++ Compiler] (fast code) || <math>\checkmark</math> || X || X || X || X || X
! Requirement || Visual Studio Code for Mac / build from commandline || Visual Studio 2022 for Windows
|-  
|-  
! [[Tutorial#Error_Handling | Exception Handling]] || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X
! Platform || iOS (iPhone, IPad) || Android
|-
! Supported Device || armv7, armv7a, arm64 || armeabi, armeabi-v7a, arm64-v8a, x86_64
|-
|-
! [[Debugger Visualizer]] || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X
! Supported Simulator || x86_64, arm64-v8a || armeabi, armeabi-v7a, arm64-v8a, x86_64 
|-
! CUDA GPU  Processing || X || X
|-
! OpenCL 1.2 (GPU&CPU) || X || <math>\checkmark</math> ([http://arrayfire.com/opencl-on-mobile-devices/ on supported devices])
|-
|-
![[Licensing: | License]] || [[Licensing:#Commercial_License| Commercial License]] || [[Licensing:#Open_Source_License| GPL]] || LGPL || Non-commercial<br/>GPL|| Non-commercial <br/>Academic use|| Non-commercial
! [http://code.google.com/p/tesseract-ocr/ Tesseract OCR] || <math>\checkmark</math> || <math>\checkmark</math>
|-
! [[Tutorial#Error_Handling | Exception Handling]] || <math>\checkmark</math> || <math>\checkmark</math>
|-
|-
! RPM release for Fedora || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X || X
![[Licensing: | License]] || [[Licensing:#Commercial_License| Commercial License]] || [[Licensing:#Commercial_License| Commercial License]]
|}
 
=== Mac OS, Linux, Unix ===
The commercial release include prebuild binary for Mac OS. For Linux and Unix platform, you need to compile the binary from source.
 
{| style="text-align:center" border="1px" cellspacing="0" cellpadding="5"
!Name || Emgu CV (Open Source) ||  Emgu CV for MacOS, Linux & Unix([[Licensing:#Commercial_License|Commercial License]])
|-
! Development Tools || Visual Studio Code, JetBrains Rider || Visual Studio Code, JetBrains Rider
|-
! MacOS || <math>\checkmark</math> || <math>\checkmark</math>
|-
! Linux, Unix || <math>\checkmark</math> || <math>\checkmark</math>  
|-
! CUDA GPU  Processing || X || X  
|-
! OpenCL (GPU&CPU) || <math>\checkmark</math> || <math>\checkmark</math>
|-
|-
! Debian release for Ubuntu || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X || X
! [http://code.google.com/p/tesseract-ocr/ Tesseract OCR] || <math>\checkmark</math> || <math>\checkmark</math>
|-
! [[Tutorial#Error_Handling | Exception Handling]] || <math>\checkmark</math> || <math>\checkmark</math>
|-
|-
!Actively Maintained <math>{}^{1}</math>|| <math>\checkmark</math> || <math>\checkmark</math> || <math>\checkmark</math> || X || X || X
![[Licensing: | License]] || [[Licensing:#Open_Source_License| GPL]] || [[Licensing:#Commercial_License| Commercial License]]
|}  
|}
 
<math>{}^{1}</math> "Actively Maintained" refers to update within one year.


== Advantage of [[Emgu CV]] ==
== Advantage of [[Emgu CV]] ==
=== Cross Platform ===
=== Cross Platform ===
Unlike other wrappers such as [http://code.google.com/p/opencvdotnet/ OpenCVDotNet], [http://www.cs.ru.ac.za/research/groups/SharperCV/ SharperCV] or [http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx Code Project] which use unsafe code, [[Emgu CV]] is written entirely in C#. The benefit is that it can be [[Compiling_with_Monodevelop|compiled in Mono]] and therefore is able to run on any platform Mono supports, including Linux, Solaris and Mac OS X. A lot of efforts has been spend 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 [[Compiling_with_Monodevelop|Emgu CV running on Fedora 10]]! Plus it always gives you the comfort knowing that your code is cross-platform.
[[Emgu CV]] is written entirely in C#. It can be run on any platform .net supports, including iOS, Android, Mac OS, Linux and windows. 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 [[Compiling_with_Monodevelop|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===
=== 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 [[Tutorial#Examples|examples]] for all those languages, which are available from the [[Tutorial#Examples|Examples section on Tutorial page]]. Our [http://www.emgu.com/forum Discussion Forum] is also available if you have any questions related to your favourite programming language.
[[Emgu CV]] can be used from several different languages, including C#, VB.NET, C++ and IronPython. On this wiki, we provide [[Tutorial#Examples|examples]] for all those languages, which are available from the [[Tutorial#Examples|Examples section on Tutorial page]]. Our [https://github.com/emgucv/emgucv/discussions Discussion Forum] is also available if you have any questions related to your favourite programming language.


=== Other Advantages ===
=== Other Advantages ===
Line 67: Line 108:
* The choice to either use the [[Tutorial#Working_with_images | Image class]] or [[Tutorial#Function_Mapping_-_Emgu.CV.CvInvoke | direct invoke functions]] from [[OpenCV]]
* The choice to either use the [[Tutorial#Working_with_images | Image class]] or [[Tutorial#Function_Mapping_-_Emgu.CV.CvInvoke | direct invoke functions]] from [[OpenCV]]
* [[Working_with_Images#Generic_Operation | Generic operations ]] on image pixels
* [[Working_with_Images#Generic_Operation | Generic operations ]] on image pixels
== Architecture Overview ==
[[Emgu CV]] has two layers of wrapper as shown below
*The basic layer ('''''layer 1''''') contains [[Tutorial#Function_Mapping_-_Emgu.CV.CvInvoke | function]], [[Tutorial#Structure_Mapping_-_Emgu.CV.Mxxx | structure]] and [[Tutorial#Enumeration_Mapping_-_Emgu.CV.CvEnum | enumeration]] mappings which directly reflect those in [[OpenCV]].
*The second layer ('''''layer 2''''') contains classes that mix in [[Main_Page#Advantage_of_Emgu_CV | advantanges]] from the .NET world.
[[Image:EmguCVArchitecture.png ]]

Latest revision as of 12:49, 29 July 2025

Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages. The wrapper can be compiled by Visual Studio and Unity, it can run on Windows, Linux, Mac OS, iOS and Android.

Latest News

Platform Features

Windows

Name Emgu CV (Open Source) Emgu CV for Windows (Commercial Optimized)
Development tools Visual Studio 2019 and up Visual Studio 2019 and up Visual Studio 2019 and up
Platform Windows Windows UWP / Windows 8.1 Store app
Supported CPU Architecture i386, x86_64, arm64 i386, x86_64, arm64 i386, x86_64
CUDA GPU Processing x86_64 x86_64 X
OpenCL (GPU&CPU) X
Tesseract OCR
code dispatch X X
Exception Handling
Debugger Visualizer X
Emgu.CV.UI X
License GPL Commercial License
  • Windows UWP version is included in the Windows Commercial release
  • Windows Phone is no longer supported

Mobile Devices

Name Emgu CV for iOS Emgu CV for Android
Requirement Visual Studio Code for Mac / build from commandline Visual Studio 2022 for Windows
Platform iOS (iPhone, IPad) Android
Supported Device armv7, armv7a, arm64 armeabi, armeabi-v7a, arm64-v8a, x86_64
Supported Simulator x86_64, arm64-v8a armeabi, armeabi-v7a, arm64-v8a, x86_64
CUDA GPU Processing X X
OpenCL 1.2 (GPU&CPU) X (on supported devices)
Tesseract OCR
Exception Handling
License Commercial License Commercial License

Mac OS, Linux, Unix

The commercial release include prebuild binary for Mac OS. For Linux and Unix platform, you need to compile the binary from source.

Name Emgu CV (Open Source) Emgu CV for MacOS, Linux & Unix(Commercial License)
Development Tools Visual Studio Code, JetBrains Rider Visual Studio Code, JetBrains Rider
MacOS
Linux, Unix
CUDA GPU Processing X X
OpenCL (GPU&CPU)
Tesseract OCR
Exception Handling
License GPL Commercial License

Advantage of Emgu CV

Cross Platform

Emgu CV is written entirely in C#. It can be run on any platform .net supports, including iOS, Android, Mac OS, Linux and windows. 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.

Other Advantages