Version History
Emgu.CV-2.2.1
This version is available from SVN only
Online Documentation
Nightly Build
Change Log
- The commercial version is built with Intel Composer XE 2011, IPP 7.0 for optimal performance. It is also build with the commercial version of TBB for multi-threading support.
- Beta support of GPU processing is included in Emgu.CV.GPU project. (Note: API might be changed in the next version as this is currently under heavy development)
Emgu.CV-2.2.0.0
Online Documentation
Change Log
Bug Fixes
- Fixed Bug 11: Image<TColor, TDepth>._MorphologyEx and MorphologyEx exists a bug of ArgumentNullException
- Fixed Bug 12: Miss finding contours functions step by step
- Fixed Bug 14: Wrong cvCalibrateCamera2 DllImport declaration causes FPU stack overflow
- Fixed Bug 15: Wrong DllImport prototype for cvUndistort2 leads to asserts in OpenCV
- Fixed Bug 21: Expose HOGDescriptor's compute function to further feed into learning algorithms
- Fixed Bug 23: Change the calling convention of all Pinvoke calls to CallingConvention.CDEL
- Fixed Bug 30: (for MCvKalman structure) multiple kinds of members with same name
- Fixed the signature for cvProjectPoints2, cvStereoCalibrate, cvStereoRectifyUncalibrate and cvStereoRectify.
- Fixed the signature for CvInvoke.cvStartReadSeq.
- Fixed a memory leak in DenseHistogram class.
Enhancements
- Added support for Visual Studio 2010
- Added CvGaussBGStatModel. Thanks to jacovdm.
- Added Features2D namespace for feature detectors.
- Moved all feature detectors to the Features2D namespace.
- Added SIFTDetector.
- Added FastDetector.
- Added Features2DTracker as a more generic replacement for SURFTracker.
- Renamed MCvSurfParams to SURFDetector.
- Added Emgu.Tiff namespace for writing Geotiff and tile-tiff.
- Eliminated the dependency on zlib.net. Use the unmanaged zlib in OpenCV for compression and decompression.
- Added Quaternions rotation implementation
- Added support for fast conversion from Format32bppRgb to Image<,> class
- Added Check range function for CvArray
- Added Flann.Index3D for indexing 3D points
- Added two QT related fields for MCvFont to match OpenCV svn
- Wrapped CvInvoke.cvPyrMeanShiftFiltering function
- Changed the RTreeClassifier.Train function signature to match OpenCV svn
- Use BufferedStream to improve the performance of BinaryFileStorage
- Updated IntrinsicCameraParameters to support 8 distortion coefficient.
- Added DataLogger class for unmanaged code (C/ C++) to log data / message back to managed code via callback.
Emgu.CV-2.1.0.0
Online Documentation
Change Log
- Updated to use OpenCV 2.1
- Configured CMake to build Rpm package on Fedora
- Configured CMake to build Debian package on Ubuntu
- Added StereoSGBM class
- Added GrabCut in Image<,> and CvInvoke class
- Added cvEigenVV function to CvInvoke class
- Added Parameters property in SVM class
- Added auto-tuned Index and radius search in Flann.Index class
- Added DetectFeature and ComputeDescriptor function in MCvSURFParams
- Added filter in ImageViewer when image save dialog is opened
- Added FAST_CHECK enumeration to CALIB_CB_TYPR for CvInvoke.cvFindChessboardCorners
- Added Quaternions structure for 3D rotation
- Added Cuboid class to define a 3D region
- Added GeodeticCoordinate structure to represent Latitude, Longitude and Altitude
- Added TransformationWGS84 to transform GeodeticCoordinate to local coordinate and back
- Added SparseMatrix
- Added more functions in MCvPoint3D64f structure
- Added cvCvtPixToPlane in CvInvoke class
- Fixed a bug in cvMulTransposed function signature
- Fixed a bug in HOGDescriptor's detectMultiScale function when no object is detected
- Fixed a bug in Farneback optical flow
- Fixed a bug in AdaptiveSkinDetector.Process function
- Fixed a bug in BlobTracker constructor when using BLOBTRACKER_TYPE.CC, thanks to jaco
- Fixed run-time serialization bug on Image<,> class when ROI is specified
- Fixed the save image bug, where Bitmap.Save(String filename) always results in saving to PNG format, regardless of the filename extension.
- Capture class can now accept URL for network streaming. Fixed Bug 6, thanks to Christian Richardt.
- Fixed a bug in DenseHistogram.BackProjectPatch & CvInvoke.cvCalcBackProjectPatch function. See Bug 7 and Bug 8, thanks to xrwang.
Known Issues
- Emgu.CV.VideoSurveillance.BGCodeBookModel is broken, not sure if this is bug in Emgu or OpenCV, any help on fixing this is welcome.
- Emgu.CV.VideoSurveillance.BGStatModel<Bgr>'s constructor with Emgu.CV.CvEnum.BG_STAT_TYPE.GAUSSIAN_BG_MODEL is failing. There is a bug in OpenCV 2.1, it has been reported and fixed in current OpenCV svn.
Emgu.CV-2.0.1.0
Online Documentation
Change Log
- Based on OpenCV 2.0
- Added Octree class and HOGDescriptor (Histogram-of-Oriented-Gradients) class
- Added Flann.Index for fast approximate nearest neighbors.
- Added FAST corner detector
- Added LePetit key point detector
- Rename MCvStarDetectorParams to StarDetector
- Added OpticalFlow.Farneback and CvInvoke.CvCalcOpticalFlowFarneback function
- Added cvInRange function in CvInvoke class; InRange(Image<TColor, TDepth> lower, Image<TColor, TDepth> higher) function in Image class;
- Added cvGetNormalizedCentralMoment in CvInvoke class; GetNormalizedCentralMoment function in MCvMoments structure
- Added cvLinearPolar in CvInvoke class
- Make Map<,> class runtime serializable. This enable Debugger Visualizer for Map<,> as well.
- Fixed a bug in InPaint function
- Fixed a bug in Image<TColor, TDepth>.SmoothBilatral, bug 5. Thanks to Brendan Tompkins
- Fixed a bug in concate horizontal. Thanks to Luca
Emgu.CV-2.0.0.0 Alpha
This is the alpha release of Emgu CV 2.0 build with OpenCV SVN rev 1918, available from Sourceforge. It is a preview of what the final version of Emgu CV 2.0 will be and is not recommended for production environment. The OpenCV Dlls included in this build are compiled with VS2008. You will needs to install MSVCRT 9.0 SP1 for dependency.
Online Documentation
Change Log
- Emgu CV 2.0 requires .NET 3.5.
- The included OpenCV dlls are built with Visual Studio 2008 and requires MSVCRT 9.0 SP1
- A feature rich ImageBox with Pan and Zoom support.
- Added Debugger Visualizer for Image, Matrix MatDN and DenseHistogram for Visual Studio 2005/2008
- Adapt CMake as the build system for Linux, it is also used to build unmanaged code on windows.
- Fixed a marshaling error in MCvBoostParams, MCvDTreeParams and MCvRTParams structures. The following class finally works in 2.0.0.0 release: Boost Tree, Decision Tree and Random Tree.
- Fixed a bug in cvReduce function
- Feature Tree can now be constructed either as Spill-Tree or K-d Tree
- Histogram class is obsolete, it is replaced by DenseHistogram class, which
- is runtime-serializable
- can be calculated from Matrix.
- can be visualized by a Debugger Visualizer
- The following classes are new in v2.0
- ERTrees (Extreme Random Trees)
- HomographyMatrix
- SURFTracker
- The following class are now runtime-serializable
- RotationVector3D
- ExtrinsicCameraParameters
- MatND
- Improvements to Image class.
- Added _GammaCorrect function
- Added ExtractMSER (Maximally stable extremal regions) function
- Make _EqualizeHist() work for color image as well: For color images, a HSV representation of the image is first obtained and the V (value) channel is histogram equalized.
- Added GetConvexityDefacts(MemStorage, ORIENTATION) function in Seq<T> class.
- Improved performance when retrieving Voroni-facets in PlanarSubdivision class.
- Improved performance for the Rotate function in Image class when crop is false.
- Removed WindowForm example and OCR example. Added VideoSurveillance, License Plate Recognition and Traffic Sign Recognition example.
- Add cvCalcEMD2 function in CvInvoke class, thanks to yoavhacohen.
- More functions wrapped in CvInvoke class.
Emgu.CV-1.5.0.1
Available from Sourceforge.
Change Log
- Fixed a bug in cvThreshold's return type. Thanks to Albert G.
Emgu.CV-1.5.0.0
Online Documentation
Change Log
- The following changes requires refracting. To upgrade from 1.4.0.0 to 1.5.0.0 please see Emgu CV 1.5 Upgrade Instructions:
- Some classes and structures are refracted, which includes:
- Generic Point class, MCvPoint and MCvPoint2D32F structure becomes System.Drawing.Point and System.Drawing.PointF structure
- MCvSize structure becomes System.Drawing.Size
- Generic Rectangle class becomes System.Drawing.Rectangle structure.
- Generic Line, LineSegment, Circle becomes its corresponding none generic structure.
- Managed OpenCV structures (MCv***) and color structures moved to the Emgu.CV.Structure namespace. This change requires existing code to include Emgu.CV.Structure namespace.
- Some classes and structures are refracted, which includes:
- The same managed dlls (Emgu.CV.dll, Emgu.Util.dll, Emgu.CV.ML.dll, Emgu.CV.UI.dll) can be used on BOTH Windows and Linux. On Linux, you will need to include the corresponding .config file for Mono to handle the PInvoke mapping.
- Beta version of Machine Learning library wrapped in Emgu.CV.ML namespace. Machine learning algorithms wrapped includes:
- Normal Bayes Classifier
- K Nearest Neighbors
- Support Vector Machine (SVM), thanks to Albert G.
- Expectation Maximization (EM)
- Neural Network (ANN_MLP)
- Boost Tree (Boost) - not tested
- Decision Tree (DTree) - not tested
- Random Tree (RTree) - not tested
- Added VideoSurveillance namespace, which wrap OpenCV's Blob Tracking algorithms.
- Support for multi-channel Matrix
- Performance improvement for Seq<T>.ToArray() function
- Performance improvement for CameraCalibration class.
- Performance improvement for PlanarSubdivision class. On a development machine, v1.4 requires 600 millisecond to retrieve all the Delaunay's triangles for 3000 points while v1.5 needs only 19 millisecond. A 31 times performance improvement.
- Added Simple 3D reconstruction example which extract disparity map from stereo image pair, and display the textured 3D point-cloud using Tao.GL
- Added an OCR (a.k.a. Text Recognition) example using tessnet2
- SURF feature example uses Feature Tree to speed up the computation.
- Fixed a bug in CameraCalibration.CalibrateCamera function
- More functions wrapped in CvInvoke class
Known Issues
- OpenCV 1.1pre for windows is built on VS2005. You will need to install MSVCRT 8.0 SP1 available from
- OpenCV 1.1pre has an issue with writing videos files. If you need to write video you have to rebuild the binary following instructions from this page (You will need an Yahoo ID to view it)
- There is a bug on gmcs compiler version 2.0. If you need to build Emgu CV on *inux. Please use gmcs 1.9.1 or version >= 2.2. (The compiled code can be run on any Mono runtime version >= 1.9.1)
Emgu.CV-1.4.0.0
Online Documentation
Change Log
- Support for OpenCV version 1.1
- Improvements in OpenCV 1.1 are automatically apply to Emgu CV 1.4.0.0. For a list of changes, please visit http://sourceforge.net/project/shownotes.php?release_id=633499
- Added ExtractSURF function in Image class; Added FeatureTree class; Added SURFFeature example (which is a C# rewriting of the find_obj.cpp example in OpenCV)
- Better Homography estimation (included RANSAC and LMEDS in the wrapper)
- Emgu.CV.UI namespace is now in its separate assembly (instead of the Emgu.CV assembly).
- Better ImageBox
- ImageBox now inherits from PictureBox instead of Control. This change allow developer to easily bind Event (e.g. MouseClick event) to the ImageBox from visual studio designer.
- Improved histogram display for multi-channel image
- Applying image operation using the right-click menu is more stable. If invalid parameters are specified for some operations, error message will be displayed instead of an application crash.
- Improved performance when converting 1pbbIndexed and 8bppIndexed Bitmap to Image class
- For .bmp and .tiff (.tif) file type, the Image class constructor by default first load them as Bitmap then convert to Image. This is necessary since the OpenCV cvLoadImage function is quite buggy when loading these image formats.
- More depth types are supported for both the Image class and Matrix class
- Improved PlannarSubdivision class
- Better performance when retrieving triangles and Voroni-facets (Thanks to Albert G for the suggestion)
- Added the Locate function
- Added OpticalFlow class
- Added example for face detection in VB.
- Fix a bug in the PInvoke signature of CvInvoke.cvCalcOpticalFlowPyrLK
- Fix a bug in CvInvoke.cvSubS function
- Fix a bug in CvInvoke.cvInvert DllImport attribute
- More functions mapped to CvInvoke class
Known Issues
- OpenCV 1.1pre for windows is built on VS2005. You will need to install MSVCRT 8.0 SP1 available from
- OpenCV 1.1pre has an issue with writing videos files. If you need to write video you have to rebuild the binary following instructions from this page (You will need an Yahoo ID to view it)
- There is a bug on gmcs compiler version >= 2.0. If you need to build Emgu CV on *inux. Please use gmcs 1.9.1 instead. (The compiled code can be run on any Mono runtime version >= 1.9.1)
Emgu.CV-1.3.0.0
Online Documentation
Change Log
- Added Bgra color type
- In Image class, added SByte for depth type.
- Improved ImageBox functionality
- Improved Histogram class
- It is now possible to create Image<,> object from any type of Bitmap
- Support for reading image from ".gif" and ".exig" file
- Added MotionHistory class and Motion Detection Example
- Added EigenObjectRecognizer class for PCA base object recognition
- Added PlannarSubdivision class, which can be used for Delaunay's Triangulation and Voronoi's Diagram. Added PlanarSubdivision example.
- Fix a bug in MCvConnectedComponent structure
- Bug fixes in CvInvoke.cvCreateVideoWriter and CvInvoke.cvFloodFill function call
- Many more functions added to CvInvoke class
- Many more structures wrapped in Emgu CV
- The released assemblies are now strong signed.
- Starting from this version of Emgu CV, ImageBox uses ZedGraph to display color histogram. If ImageBox is never used in your project, you can remove it from the dependency.
Emgu.CV-1.2.2.0
Change Log
- ImageBox Control
- Better exception handling
- Operators Overload
- Can be compiled by Monodevelop
- Support of Double as image depth
Bitmap
get property added as a high performance alternative toToBitmap()
function- Note:
Bitmap
get property differs fromToBitmap()
such that when dealing with Image<Gray, Byte> and Image<Bgr, Byte>, the image data is shared with Bitmap. Take extra caution not to use the Bitmap after the Image is disposed
- Note:
- Performance improvement on
ToBitmap()
function. When converting Grayscale to Bitmap, use Format8bppIndexed and a custom Color Palette instead of Format24bppRgb in version 1.1.1.0. In terms of memcopy it only copy one third of data as compares with the old version. Thanks for the tips from Sebastian Kraemer. - Better performance on the Width and Height properties.
- Example of using Emgu CV in WCF to implement web service. (Both Server and Client covered).
- More structure wrapped
- More functions has been covered
- Fix a bug in Circle such that it can be properly XML serialized
- Thanks Albert Gordo for the advises and contribution of patches