Tutorial

From EMGU
Revision as of 21:21, 25 February 2008 by Canming (talk | contribs)
Jump to navigation Jump to search

Namespace

Emgu

All libraries provided by Emgu™ use the namespace Emgu.

Emgu.CV

The Emgu.CV namespace implement wrapper functions for OpenCV

Emgu.CV.CvInvoke class

This class is written to provided a way to directly invoke opencv function within .NET languages. Each method in this class corresponds to the same function in opencv. For example, a call to CvInvoke.cvCreateImage(new MCvSize(400, 300), CvEnum.IPL_DEPTH.IPL_DEPTH_8U, 1); is equivalent to the function call in opencv cvCreateImage(cvSize(400, 300), IPL_DEPTH_8U, 1); . Both of which create a 400x300 single-channel image of 8-bit depth.

Emgu.CV.CvEnum namespace

This namespace provides direct mapping to opencv enumerations. For example, CvEnum.IPL_DEPTH.IPL_DEPTH_8U is equivalent to the value in opencv IPL_DEPTH_8U . Both of which equals 8.

Emgu.CV.Mxxx Structure

This type of structure is a direct mapping to opencv structures. For example

  • MIplImage is equivalent to IplImage structure in opencv
  • MCvMat is equivalent to CvMat structure
  • Mxxxx is equivalent to xxxx structure

Working with images

Creating Image

Although it is possible to create image by calling CvInvoke.cvCreateImage, we suggest using the generic class Image<C, D> for image creation. There are serveral advantage of using the Managed Image<Color, Depth> class, among those are

  • Memory is gaurantee to be release when the garbage collector dispose the Image<Color, Depth> Object
  • Image<Color, Depth> class contains advanced method that is not available on OpenCV, for example, generic operation


Image Color

Image Color is specified using the first generic parameter Color Available Color Types are:

  • Gray
  • Bgr (Blue Green Red)
  • Hsv (Hue Satuation value)

Image Depth

Image Depth is specified using the second generic parameter Depth Available Color Depths are:

  • Byte
  • Single (float)