Download And Installation: Difference between revisions
Line 10: | Line 10: | ||
**If you are using Visual Studio 2005, browse to VS2005_MonoDevelop | **If you are using Visual Studio 2005, browse to VS2005_MonoDevelop | ||
**If you are using Visual Studio 2008, browse to VS2008 | **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. | *Open <code>Emgu.CV.Example.sln</code> and build the solution. At this point, you should be able to run the example programs. | ||
===Creating a New Project in Visual Studio=== | ===Creating a New Project in Visual Studio=== |
Revision as of 17:57, 19 May 2009
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
andEmgu.CV.dll
to References of the project. If you needs to use the Machine Learning library, includeEmgu.CV.ML.dll
to References as well. - Copy the OpenCV dll files:
cv110.dll
,cvaux110.dll
,cxcore110.dll
,highgui110.dll
,ffopencv110.dll
andml110.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;
- Follow the Tutorial to learn how to use Emgu CV. The "Hello, World" Example is a good starting point.
The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
If you see this exception, please check the following
Have you installed MSVCRT 8.0 SP1?
The OpenCV pre1.1 binary comes with Emgu CV version 1.5 is build with Visual Studio 2005, you will needs to installed MSVCRT 8.0 SP1 from this page to resolve the dependency issue.
Have you copy the OpenCV dlls to the execution directory?
- Make sure
cv110.dll
,cvaux110.dll
,cxcore110.dll
,highgui110.dll
,ffopencv110.dll
andml110.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 included Dlls, left click on it, find the "Copy to Output Directory" option and select "Copy if newer"
Are you running a 32-Bit OS?
The OpenCV pre1.1 binary comes with Emgu CV version 1.5 is compiled as 32bit binary.
If you are using a 64-bit OS, there are two ways to resolve this issue:
- One way is to recompile OpenCV pre1.1 from source as 64-bit binary. Do this at your own risk because OpenCV 1.1pre do not officially support 64-bit.
- The other way is, on your executable project, select Platform Target as 'x86'. This force your application to start in 32bit mode, even on a 64-bit OS.
I have check all of above but I still got an Exception
In this case, 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
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
- 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
Building 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
- Build Emgu CV by calling
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
- Follow the instruction on Compiling with Monodevelop, as the environment has been setup by cmake