Download And Installation

From EMGU
Revision as of 13:43, 30 April 2009 by Emgucv (talk | contribs)
Jump to navigation Jump to search

Windows

Getting the Dependency

  • Emgu CV use WCF(Windows Communication Foundation) therefore requires .Net 3.0
  • OpenCV 1.1pre for Windows is built on VS2005. You will need to install MSVCRT 8.0 SP1 available from

this page

Building the Examples

  • Follow this link to the file server on Source Forge.
  • Download and extract the package Emgu.CV.SourceAndExamples-{version}.zip
  • Go to the Solution folder
    • If you are using Visual Studio 2005, browse to VS2005_MonoDevelop
    • If you are using Visual Studio 2008, browse to VS2008
  • Open Emgu.CV.Example.sln and build the solution. At this point, you should be able to run the example programs.

Creating a New Project in Visual Studio

To use the framework in Visual Studio, you need to

  • Download and extract the binary files package Emgu.CV.Windows.Binary-{version}.zip (They are compiled from source on Windows using MsBuild)
  • Create a new Visual Studio project or use an existing one
  • Add the 3 files zlib.net.dll, Emgu.Utils.dll and Emgu.CV.dll to References of the project. If you needs to use the Machine Learning library, include Emgu.CV.ML.dll to References as well.
  • Copy the OpenCV dll files: cv110.dll, cvaux110.dll, cxcore110.dll, highgui110.dll, ffopencv110.dll and ml110.dll to the execution directory.
  • Optionally put the following lines in the top of your code to include the Emgu.CV namespace.

using Emgu.CV;
using Emgu.CV.Structure;

If you use the Machine Learning library, you mights wants to include the following as well

using Emgu.CV.ML;

The type initializer for 'Emgu.CV.CvInvoke' threw an exception.

If you see this exception, please check the following:

  • Make sure cv110.dll, cvaux110.dll, cxcore110.dll, highgui110.dll, ffopencv110.dll and ml110.dll (unmanaged DLLs) are in the execution directory. The best way to do this is:
    • Copy the unmanaged DLLs to your project folder
    • Right click on the project, click Add->Existing Item and select all unmanaged DLLs. Add them to the project.
    • For each of the includeded Dlls, left click on it, find the "Copy to Output Directory" option and select "Copy if newer"
  • Make sure you have MSVCRT 8.0 SP1 installed from

this page

After you check both of the above, if you still get the exception, please try to build and run the examples. After building the examples, try to run the "Hello World" Program.

If "Hello World" runs without any problem, compare it with you project, find the difference in configuration and fix it.

If "Hello World" get the same "The type initializer for 'Emgu.CV.CvInvoke' threw an exception." message, try to find out the InnerException and report it to the discussion forum

Linux

Getting the Dependency

  • Mono
    • You will need Mono >= 2.2. Mono 2.4 is recommended.
    • Emgu CV library use WCF (Windows Communication Fundation) and therefore also requires mono-extra.
    • You can install both by running yum install mono-core mono-extra as root.

Follow this link to access the file server on Source Forge.

  • OpenCV
    • We will build a custom version of OpenCV in the next step. It is recommended to remove any OpenCV package if it is installed on your machine. On Fedora 10, you can remove OpenCV by running yum remove opencv as root

Building Emgu CV from Source

Emgu CV has adapted to use cmake to compile all it source code (as well as OpenCV).

  • Make sure you have cmake installed, if not, login as root and call
 yum install cmake 
  • To build from source, you will need a SVN client to check out the source code from SourceForge. For more information, see SVN. The following command can be used to check out the source:
svn co https://emgucv.svn.sourceforge.net/svnroot/emgucv/trunk emgucv 
  • Go to emgucv directory, call
cmake .

This will generate make file for Emgu CV

make

Sit back and wait as this will build OpenCV, as well as cvextern.so, Emgu.Util.dll, Emgu.CV.dll, Emgu.CV.UI.dll and Emgu.CV.ML.dll

  • To test the build, you can also build the PlanarSubdivision Example by calling
make Emgu.CV.Example.PlanarSubdivision

The PlanarSubdivision example use "cvextern.so" such that we can verify its correctness

  • Now go to the bin folder
cd bin
  • make sure mono can load the dynamic library from the current location by typing
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
  • Try to run the example
mono Emgu.CV.Example.PlanarSubdivision.monoexe

You should see the planar subdivision window