Update to 2.0.0 tree from current Fremantle build
[opencv] / doc / ChangeLog.htm
1 <html>
2 <head>
3 <title>OpenCV ChangeLog</title>
4 <style TYPE="text/css">
5 <!--
6 P.Blurb {
7     margin-top: -10pt;
8 }
9 -->
10 </style>
11 </head>
12
13 <body>
14 <h2>2.0</h2>
15 <p class="Blurb"><i>(September, 2009)</i></p>
16
17 <pre>
18 >>> New functionality, features:
19
20   - General:
21     * Installation package on Windows has been fixed,
22       MinGW is used for precompiled binaries
23       (see the release notes on the SourceForge site)
24       
25     * autotools-based build has been repaired
26
27   - MLL:
28     * The new-style class aliases (e.g. cv::SVM ~ CvSVM) and the train/predict methods,
29       taking cv::Mat in addition to CvMat, have been added. So now MLL can be used
30       more seamlesly with the rest of the restyled OpenCV.
31
32 >>> Bug fixes:
33
34   - A _lot_ of bugs present in 2.0 beta have been fixed, see the OpenCV bug tracker
35     http://sourceforge.net/tracker/?group_id=22870&atid=376677
36     Thanks to everybody who submitted bug reports and/or patches!
37 </pre>
38
39 <hr><h2>2.0 beta</h2>
40 <p class="Blurb"><i>(September, 2009)</i></p>
41
42 <pre>
43 >>> New functionality, features: <<<
44
45   - General:
46     * The brand-new C++ interface for most of OpenCV functionality
47       (cxcore, cv, highgui) has been introduced.
48       Generally it means that you will need to do less coding to achieve the same results;
49       it brings automatic memory management and many other advantages.
50       See the C++ Reference section in opencv/doc/opencv.pdf and opencv/include/opencv/*.hpp.
51       The previous interface is retained and still supported.
52       
53     * The source directory structure has been reogranized; now all the external headers are placed
54       in the single directory on all platforms.
55       
56     * The primary build system is CMake, http://www.cmake.org (2.6.x is the preferable version).
57         + In Windows package the project files for Visual Studio, makefiles for MSVC,
58           Borland C++ or MinGW are note supplied anymore; please, generate them using CMake.
59       
60         + In MacOSX the users can generate project files for Xcode.
61         
62         + In Linux and any other platform the users can generate project files for
63           cross-platform IDEs, such as Eclipse or Code Blocks,
64           or makefiles for building OpenCV from a command line.
65           
66     * OpenCV repository has been converted to Subversion, hosted at SourceForge:
67       http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary
68       where the very latest snapshot is at
69       http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk,
70       and the more or less stable version can be found at
71       http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot
72       
73   - CXCORE, CV, CVAUX:
74   
75     * CXCORE now uses Lapack (CLapack 3.1.1.1 in OpenCV 2.0) in its various linear algebra functions
76       (such as solve, invert, SVD, determinant, eigen etc.) and the corresponding old-style functions
77       (cvSolve, cvInvert etc.)
78   
79     * Lots of new feature and object detectors and descriptors have been added
80       (there is no documentation on them yet), see cv.hpp and cvaux.hpp:
81       
82       + FAST - the fast corner detector, submitted by Edward Rosten
83       
84       + MSER - maximally stable extremal regions, submitted by Liu Liu 
85       
86       + LDetector - fast circle-based feature detector by V. Lepetit (a.k.a. YAPE)
87       
88       + Fern-based point classifier and the planar object detector -
89                        based on the works by M. Ozuysal and V. Lepetit
90                        
91       + One-way descriptor - a powerful PCA-based feature descriptor,
92         (S. Hinterstoisser, O. Kutter, N. Navab, P. Fua, and V. Lepetit,
93         "Real-Time Learning of Accurate Patch Rectification").
94         Contributed by Victor Eruhimov
95       
96       + Spin Images 3D feature descriptor - based on the A. Johnson PhD thesis;
97         implemented by Anatoly Baksheev
98       
99       + Self-similarity features - contributed by Rainer Leinhart
100       
101       + HOG people and object detector - the reimplementation of Navneet Dalal framework
102         (http://pascal.inrialpes.fr/soft/olt/). Currently, only the detection part is ported,
103         but it is fully compatible with the original training code.
104         See cvaux.hpp and opencv/samples/c/peopledetect.cpp.
105         
106       + Extended variant of the Haar feature-based object detector - implemented by Maria Dimashova.
107         It now supports Haar features and LBPs (local binary patterns);
108         other features can be more or less easily added
109         
110       + Adaptive skin detector and the fuzzy meanshift tracker - contributed by Farhad Dadgostar,
111         see cvaux.hpp and opencv/samples/c/adaptiveskindetector.cpp
112     
113     * The new traincascade application complementing the new-style HAAR+LBP object detector has been added.
114       See opencv/apps/traincascade.
115       
116     * The powerful library for approximate nearest neighbor search FLANN by Marius Muja
117       is now shipped with OpenCV, and the OpenCV-style interface to the library
118       is included into cxcore. See cxcore.hpp and opencv/samples/c/find_obj.cpp
119       
120     * The bundle adjustment engine has been contributed by PhaseSpace; see cvaux.hpp
121       
122     * Added dense optical flow estimation function (based on the paper
123       "Two-Frame Motion Estimation Based on Polynomial Expansion" by G. Farnerback).
124       See cv::calcOpticalFlowFarneback and the C++ documentation
125         
126     * Image warping operations (resize, remap, warpAffine, warpPerspective)
127       now all support bicubic and Lanczos interpolation.
128       
129     * Most of the new linear and non-linear filtering operations (filter2D, sepFilter2D, erode, dilate ...)
130       support arbitrary border modes and can use the valid image pixels outside of the ROI
131       (i.e. the ROIs are not "isolated" anymore), see the C++ documentation.
132       
133     * The data can now be saved to and loaded from GZIP-compressed XML/YML files, e.g.:
134       cvSave("a.xml.gz", my_huge_matrix);
135       
136   - MLL:
137     * Added the Extremely Random Trees that train super-fast,
138       comparing to Boosting or Random Trees (by Maria Dimashova).
139       
140     * The decision tree engine and based on it classes
141       (Decision Tree itself, Boost, Random Trees)
142       have been reworked and now:
143       + they consume much less memory (up to 200% savings)
144       + the training can be run in multiple threads (when OpenCV is built with OpenMP support)
145       + the boosting classification on numerical variables is especially
146         fast because of the specialized low-overhead branch.
147         
148     * mltest has been added. While far from being complete,
149       it contains correctness tests for some of the MLL classes.
150
151   - HighGUI:
152     * [Linux] The support for stereo cameras (currently Videre only) has been added.
153       There is now uniform interface for capturing video from two-, three- ... n-head cameras.
154       
155     * Images can now be compressed to or decompressed from buffers in the memory,
156       see the C++ HighGUI reference manual
157
158   - Documentation:
159     * The reference manual has been converted from HTML to LaTeX (by James Bowman and Caroline Pantofaru),
160       so there is now:
161       + opencv.pdf for reading offline
162       + and the online up-to-date documentation
163         (as the result of LaTeX->Sphinx->HTML conversion) available at
164         http://opencv.willowgarage.com/documentation/index.html
165         
166   - Samples, misc.:
167     * Better eye detector has been contributed by Shiqi Yu,
168       see opencv/data/haarcascades/*[lefteye|righteye]*.xml
169     * sample LBP cascade for the frontal face detection
170       has been created by Maria Dimashova,
171       see opencv/data/lbpcascades/lbpcascade_frontalface.xml
172     * Several high-quality body parts and facial feature detectors
173       have been contributed by Modesto Castrillon-Santana,
174       see opencv/data/haarcascades/haarcascade_mcs*.xml
175    
176 >>> Optimization:
177     * Many of the basic functions and the image processing operations
178       (like arithmetic operations, geometric image transformations, filtering etc.)
179       have got SSE2 optimization, so they are several times faster.
180       
181     - The model of IPP support has been changed. Now IPP is supposed to be
182       detected by CMake at the configuration stage and linked against OpenCV.
183       (In the beta it is not implemented yet though).
184       
185     * PNG encoder performance improved by factor of 4 by tuning the parameters
186
187 >>> Bug fixes: <<<
188     TBD
189     (see http://sourceforge.net/tracker/?group_id=22870&atid=376677 of the list
190     of the closed and still opened bugs).
191     
192     Many thanks to everybody who submitted bug reports and/or provided the patches!
193
194 >>> Known issues:
195     * configure+autotools based build is currently broken.
196       Please, use CMake.
197     * OpenCV bug tracker at SF still lists about 150 open bugs.
198       Some of them may be actually fixed already, and most of the remaining bugs
199       are going to be fixed by OpenCV 2.0 gold.
200     * IPP is not supported. As the new OpenCV includes a lot of SSE2 code,
201       it may be not such a serious problem, though.
202       The support (at least for most important functions that do not have
203       SSE2 optimization) will be returned in 2.0 gold.
204     * The documentation has been updated and improved a lot, but it still
205       needs quite a bit of work:
206         - some of the new functionality in cvaux is not described yet.
207         - the bibliography part is broken
208         - there are quite a few known bugs and typos there
209         - many of the hyperlinks are not working.
210     * The existing tests partly cover the new functionality
211       (via the old backward-compatibility OpenCV 1.x API), but the coverage is
212       not sufficient of course.
213     * The new-style Python interface is not included yet  
214
215     Many of the problems will be addressed in 2.0 gold.
216     If you have found some specific problem, please, put the record to the bug tracker:
217     http://sourceforge.net/tracker/?group_id=22870
218     Better if the bug reports will include a small code sample in C++/python +
219     all the necessary data files needed to reproduce the problem.
220 </pre>
221
222 <hr><h2>1.1pre1</h2>
223 <p class="Blurb"><i>(October, 2008)</i></p>
224
225 <pre>
226
227 >>> New functionality/features: <<<
228
229   - General:
230     * Octave bindings have been added. See interfaces/swig/octave (for now, Linux only)
231     * [Windows] OpenCV is now built with VS2005 with SSE2 and OpenMP support
232       included (if you want to rebuild OpenCV using Express or
233       Standard Edition of VS, use _make\opencv.vs2005.no_openmp.sln).
234     * [Windows] Python bindings have been updated to use Python 2.6
235     * [Windows] cvcam has been removed (as videoInput is now supported by highgui)
236
237   - CXCORE, CV, CVAUX:
238     * Speeded-up Robust Features (SURF), contributed by Liu Liu.
239       see samples/c/find_obj.cpp and the documentation opencvref_cv.htm
240     * Many improvements in camera calibration:
241       - Added stereo camera calibration: cvStereoCalibrate, cvStereoRectify etc.
242       - Single camera calibration now uses Levenberg-Marquardt method and supports
243         extra flags to switch on/off optimization of individual camera parameters
244       - The optional 3rd radial distortion parameter (k3*r^6) is now supported in
245         every calibration-related function
246     * 2 stereo correspondence algorithms:
247       - very fast block matching method by Kurt Konolige
248         (processes the Tsukuba stereo pair in <10ms on Core2Duo laptop)
249       - slow but more accurate graph-cut based algorithm by Kolmogorov and Zabin
250     * Better homography estimation algorithms (RANSAC and LMEDs)
251     * new C++ template image classes contributed by Daniel Filip (Google inc.).
252       see opencv/cxcore/include/cvwimage.h
253     * Fast approximate nearest neighbor search (by Xavier Delacour)
254     * Codebook method for background/foreground segmentation (by Gary Bradski)
255     * Sort function (contributed by Shiqi Yu)
256     * [OpenCV+IPP] Face Detection (cvHaarDetectObjects) now runs much faster
257       (up to 2x faster) when using IPP 5.3 or higher.
258     * Much faster (~4x faster) fixed-point variant of cvRemap has been added
259
260   - MLL:
261     * Python bindings for MLL have been added. There are no samples yet.
262
263   - HighGUI:
264     * [Windows, 32bit] Added support for videoInput library.
265       Hence, cvcam is [almost] not needed anymore
266     * [Windows, 32bit] FFMPEG can now be used for video decoding/encoding
267       via ffopencv*.dll
268     * [Linux] Added unicap support
269     * Improved internal video capturing and video encoding APIs
270
271   - Documentation:
272     * OpenCV book has been published (sold separately :) see docs/index.htm)
273
274   - New samples (opencv/samples):
275     * Many Octave samples
276     * find_obj.cpp (SURF), bgfg_codebook.cpp (Codebook BG/FG segmentation),
277       stereo_calib.cpp (Stereo calibration and stereo correspondence)
278
279 >>> Bug fixes: <<<
280      Many thanks to everybody who submitted bug reports and/or provided the patches!
281
282     * added dma_unlisten to icvCloseCAM_DC1394 (thanks to Victor Benso)
283     * LMEDs algorithm for cvFindFundamentalMat estimation has been fixed
284     * Broken debug build of highgui in VS2005/2008 (SF #2056185, SF #1709435)
285     * cvFindChessboardCorners memory leak and incorrect size checks
286       (SF #1972896, SF #1910323)
287     * disabling GTK causes v4l runtime error (SF #2088102)
288     * cvsetmousecallback bug (SF #2053529)
289     * libhighgui needed deprecated "img_convert" replacement (SF #2011753)
290     * Segfault in createsamples caused by uninitialized variable (SF #1977989)
291     * Data Alignment Issue in bgfg_gaussmix (SF #1961755)
292     * libpng need to be updated (SF #1952793)
293     * cvCreateVideoWriter_Win32 - identifier not found (SF #1944254)
294     * Bug in cvmorph.cpp (SF #1908844)
295     * dilate (cvDilate) works bogus with default kernel (SF #1887130)
296     * CvEM non-default constructor declared but not defined (SF #1830346)
297     * cvFloodFill (in ver 1.0) Hangs (SF #1790565)
298     * double delete in CvImage (SF #1733437)
299     * cvFilter2D anchor default value is not working properly (SF #1713779)
300     * cvCvtColor - Bug? in converting HSV2RGB (SF #1676344)
301     * Invalid selection of the MKL-dll version in cvUseOptimized() (SF #1633017)
302     * ...
303
304 >>> Known issues:
305     * Borland compiler is not supported (but might work) in this update.
306     * 64-bit Windows is not supported (but might work) in this update.
307     * SF bug tracker still contains over 50 records of open bugs.
308       Many of them will be addressed in the next update.
309 </pre>
310
311 <hr><h2>1.0</h2>
312 <p class="Blurb"><i>(October, 2006)</i></p>
313
314 <pre>
315 >>> New functionality/features: <<<
316
317   - General:
318     * Windows installation package now includes precompiled Python module
319     * Borland C++ (v5.6+) makefiles re-added (see _make\make_all_bc.mak)
320
321   - CV:
322     * Inpainting was added, see samples/c/inpaint.cpp
323       (thanks to Alexander Kibkalo and Alexey Kalinichenko)
324
325   - MLL:
326     * Boosted tree classifiers added, see MLL reference manual
327
328   - HighGUI:
329     * Jpeg2000 and EXR support in highgui using JasPer and OpenEXR (thanks to Nils Hasler)
330       OpenEXR is not built-in to highgui on Windows by default. See
331       otherlibs/_graphics/readme.txt.
332     * >8-bit image input/output for PNG, Jpeg2000 and OpenEXR (thanks to Nils Hasler)
333     * Updated CMUcamera wrapper.
334     * Several V4L2 improvements and fixes
335   
336   - New samples (opencv/samples):
337     * Camera calibration sample: calibrate.cpp
338     * Inpainting sample: inpaint.cpp
339     * Letter recognition using the existing database with
340       random trees/boosted trees/neural nets: leter_recog.cpp
341     * A few new Python samples.
342
343   - Tests:
344     * Most old cv tests have been rewritten/converted to use cxts instead of trs.
345       TRS is not used by the tests anymore.
346     
347 >>> Bug fixes: <<<
348      Many thanks to everybody who submitted bug reports and/or provided the patches!
349
350      * Incorrect normalization in cvFindFundamentalMat (SF #1550855)
351      * Occasional cvGetQuadrangleSubPix crashes (SF #1549168)
352      * Occasional cvCalcOpticalFlowPyrLK crashes
353      * Internal GCC 3.x error in cvFloor/cvCeil (SF #1546657)
354      * Several Python-related bugs (SF #1570109, SF #1572800, SF #1543593)
355      * Bugs in contour processing/rendering (SF #1550889, 
356      * x86-64 related bugs (SF #1526133, SF #1527997)
357      * OpenCV dispatcher tried to load old versions of IPP (pre 4.x)
358        that caused many failures (see SF #1555093, for example)
359      * Inaccurate results in some cases in cvFitEllipse, cvFitLine, cvHoughCircles.
360      * Severe bug in Bayesian classifier, broken regression tree in MLL
361      * Overflow in blurring filter
362      * cvSaveImage() modified saved images leading to potential problems in threaded apps.
363      * Numeric values in XML/YAML were emitted/parsed incorrectly
364        on some non-US locales in Linux
365      * VS2005 Express/Standard Editions could not build OpenCV
366        (due to missing OpenMP support)
367      * ...
368
369 >>> Known issues:
370     * Certain tests may fail on IA64 (Itanium), e.g.
371       gaussian filter, fundamental matrix estimation, chessboard detector.
372 ...
373 </pre>
374 </body>
375 </html>