]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
fixed several documentation bugs
authorvp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 17:13:57 +0000 (17:13 +0000)
committervp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 17:13:57 +0000 (17:13 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2991 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/doc/ChangeLog.htm
opencv/doc/cv_image_transform.tex
opencv/doc/cxcore_array_operations.tex
opencv/doc/cxcore_basic_structures.tex
opencv/doc/cxcore_drawing_functions.tex
opencv/samples/c/mser_sample.cpp

index e669a8fe4aac2c300b4c732615a5065f2e75b5ca..dd2822bbb7a3c4f0650f631cc4b61a58701c3c90 100644 (file)
@@ -11,6 +11,337 @@ P.Blurb {
 </head>
 
 <body>
+    
+<h2>2.1</h2>
+<p class="Blurb"><i>(April, 2010)</i></p>
+
+<pre>
+OpenCV 2.1 is basically a stabilized OpenCV 2.0, yet there are a few new features. 
+
+>>> General modifications
+
+  - SVN repository has been migrated from SourceForge to https://code.ros.org/svn/opencv.
+    The bug tracker has been moved to https://code.ros.org/trac/opencv/.
+    And we also have OpenCV twitter! http://twitter.com/opencvlibrary 
+
+  - The whole OpenCV is now using exceptions instead of the old libc-style mechanism.
+    That is, instead of checking error code with cvGetErrStatus() (which currently always returns 0)
+    you can now just call OpenCV functions inside C++ try-catch statements,
+    cv::Exception is now derived from std::exception.
+  
+  - OpenCV does not support autotools-based build scripts,
+    CMake (www.cmake.org) is the only way to build OpenCV on any OS.
+    See http://opencv.willowgarage.com/wiki/InstallGuide.
+    
+  - All the parallel loops in OpenCV have been converted from OpenMP
+    to Intel TBB (http://www.threadingbuildingblocks.org/). Thus parallel version of OpenCV
+    can now be built using MSVC 2008 Express Edition or using earlier than 4.2 versions of GCC.
+    
+  - SWIG-based Python wrappers are still included,
+    but they are not built by default and it's generally preferable to use the new wrappers.
+    The python samples have been rewritten by James Bowman to use the new-style Python wrappers,
+    which have been also created by James.
+    
+  - OpenCV can now be built and run in 64-bit mode on MacOSX 10.6 and Windows (see HighGUI and known problems below).
+    On Windows both MSVC 2008 and mingw64 are known to work.
+    
+  - In theory OpenCV is now able to determine the host CPU on-fly and make use of SSE/SSE2/... instructions,
+    if they are available. That is, it should be more safe to use WITH_SSE* flags in CMake.
+    However, if you want maximum portability, it's recommended to turn on just WITH_SSE and WITH_SSE2
+    and leave other SSE* turned off, as we found that using WITH_SSE3, WITH_SSSE3 and WITH_SSE4_1 can yield
+    the code incompatible with Intel's pre-Penryn or AMD chips. 
+
+>>> New functionality, features:
+
+  - cxcore, cv, cvaux:
+  
+    * Grabcut (http://en.wikipedia.org/wiki/GrabCut) image segmentation algorithm has been implemented.
+      See opencv/samples/c/grabcut.cpp
+  
+    * new improved version of one-way descriptor is added. See opencv/samples/c/one_way_sample.cpp
+    
+    * modified version of H. Hirschmuller semi-global stereo matching algorithm that we call SGBM
+      (semi-global block matching) has been created. It is much faster than Kolmogorov's graph
+      cuts-based algorithm and yet it's usually better than the block matching StereoBM algorithm.
+      See opencv/samples/c/stereo_matching.cpp.
+      
+    * existing StereoBM stereo correspondence algorithm by K. Konolige was noticeably improved:
+      added the optional left-right consistency check and speckle filtering,
+      improved performance (by ~20%).
+      
+    * User can now control the image areas visible after the stereo rectification
+      (see the extended stereoRectify/cvStereoRectify), and also limit the region
+      where the disparity is computed (see CvStereoBMState::roi1, roi2; getValidDisparityROI).
+      
+    * Mixture-of-Gaussian based background subtraction algorithm has been rewritten for better performance
+      and better accuracy. Alternative C++ interface BackgroundSubtractor has been provided,
+      along with the possibility to use the trained background model to segment the foreground
+      without updating the model. See opencv/samples/c/bgfg_segm.cpp.    
+      
+  - highgui:
+    
+    * MacOSX: OpenCV now includes Cocoa and QTKit backends, in addition to Carbon and Quicktime.
+      Therefore you can build OpenCV as 64-bit library. Thanks to Andre Cohen and Nicolas Butko, which components 
+      
+      Note however that the backend are now in the alpha state, they can crash or leak memory,
+      so for anything more serious than quick experiments you may prefer to use Carbon and Quicktime.
+      To do that, pass USE_CARBON=ON and USE_QUICKTIME=ON to CMake and build OpenCV in 32-bit mode
+      (i.e. select i386 architecture in Xcode).
+      
+    * Windows. OpenCV can now be built in 64-bit mode with MSVC 2008 and also mingw64.
+      
+    * Fullscreen has been added (thanks to Yannick Verdie).
+      Call cvSetWindowProperty(window_name, CV_WINDOW_FULLSCREEN, 1) to make the particular window
+      to fill the whole screen. This feature is not supported in the Cocoa bindings yet.     
+     
+    * gstreamer backend has been improved a lot (thanks to Stefano Fabri)     
+
+>>> New tests:
+
+  - A few dozens of new tests have been written and many existing tests have been extended
+    to verify OpenCV correctness thoroughly. As a result, we brought the test coverage from
+    rather mediocre numbers to pretty impressive ones (especially for cxcore and cv)!
+    
+    Module                 OpenCV 2.0 coverage                 OpenCV 2.1
+                         (functions/conditions)          (functions/conditions)     
+    cxcore                      65/54                            91/73
+    cv                          52/46                            80/68
+    ml                          66/47                            73/52
+    highgui                     17/3                             54/27
+    cvaux                        0/0                              5/12
+
+  - Many new regression tests have been written in Python that check both OpenCV and the new-style bindings.
+
+  - The test data moved to the separate repository: https://code.ros.org/svn/opencv/trunk/opencv_extra/testdata.
+    And it is not included into the package, thus some tests from the cvtest and mltest will report about the missing data.
+    You can download the directory to your hard drive and run cvtest like:
+    ./cvtest -d <path_to_opencv_extra>/testdata/cv
+    ./mltest -d <path_to_opencv_extra>/testdata/ml  
+    
+  - The test engine has been improved:
+     added flags -tn, -seed, -r
+     the detailed information about failed tests is displayed right in the console.
+
+>>> Bug fixes:
+
+  - about 200 bugs have been fixed. For the list of closed and still open bugs, please look at
+    https://code.ros.org/trac/opencv/report and
+    http://sourceforge.net/tracker/?group_id=22870&atid=376677.    
+  
+>>> Known problems/limitations.
+
+  - there are some sporadic test failures on different platforms.
+    Most probably they are caused by some very special test cases
+    (that are usually generated randomly on each test run) and the test cases
+    are not properly handled by the functions or by the tests.
+    Some of the tests have been reproduced and reported here:
+    
+    https://code.ros.org/trac/opencv/ticket/29
+    https://code.ros.org/trac/opencv/ticket/113
+    https://code.ros.org/trac/opencv/ticket/114
+    
+  - the new Python bindings do not include interface for the new C++ functionality and MLL.
+    this is going to be addressed in some special intermediate OpenCV release
+  
+  - documentation is also incomplete at the moment and there are occasional formatting,
+    grammar and semantical errors.
+    We continue to improve it on a regular basis. Please, check the up-to-date online
+    documentation at:
+    
+    http://opencv.willowgarage.com/documentation/c/index.html (C)
+    http://opencv.willowgarage.com/documentation/cpp/index.html (C++)
+    http://opencv.willowgarage.com/documentation/python/index.html (Python)
+    
+  - please also check the list of open bugs at
+    https://code.ros.org/trac/opencv/report and
+    http://sourceforge.net/tracker/?group_id=22870&atid=376677. 
+  
+</pre>
+
+<hr><h2>2.0 beta</h2>
+<p class="Blurb"><i>(September, 2009)</i></p>
+
+<pre>
+>>> New functionality, features: <<<
+
+  - General:
+    * The brand-new C++ interface for most of OpenCV functionality
+      (cxcore, cv, highgui) has been introduced.
+      Generally it means that you will need to do less coding to achieve the same results;
+      it brings automatic memory management and many other advantages.
+      See the C++ Reference section in opencv/doc/opencv.pdf and opencv/include/opencv/*.hpp.
+      The previous interface is retained and still supported.
+
+    * The source directory structure has been reogranized; now all the external headers are placed
+      in the single directory on all platforms.
+
+    * The primary build system is CMake, http://www.cmake.org (2.6.x is the preferable version).
+        + In Windows package the project files for Visual Studio, makefiles for MSVC,
+          Borland C++ or MinGW are note supplied anymore; please, generate them using CMake.
+
+        + In MacOSX the users can generate project files for Xcode.
+
+        + In Linux and any other platform the users can generate project files for
+          cross-platform IDEs, such as Eclipse or Code Blocks,
+          or makefiles for building OpenCV from a command line.
+
+    * OpenCV repository has been converted to Subversion, hosted at SourceForge:
+      http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary
+      where the very latest snapshot is at
+      http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk,
+      and the more or less stable version can be found at
+      http://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot
+
+  - CXCORE, CV, CVAUX:
+
+    * CXCORE now uses Lapack (CLapack 3.1.1.1 in OpenCV 2.0) in its various linear algebra functions
+      (such as solve, invert, SVD, determinant, eigen etc.) and the corresponding old-style functions
+      (cvSolve, cvInvert etc.)
+
+    * Lots of new feature and object detectors and descriptors have been added
+      (there is no documentation on them yet), see cv.hpp and cvaux.hpp:
+
+      + FAST - the fast corner detector, submitted by Edward Rosten
+
+      + MSER - maximally stable extremal regions, submitted by Liu Liu 
+
+      + LDetector - fast circle-based feature detector by V. Lepetit (a.k.a. YAPE)
+
+      + Fern-based point classifier and the planar object detector -
+                       based on the works by M. Ozuysal and V. Lepetit
+
+      + One-way descriptor - a powerful PCA-based feature descriptor,
+        (S. Hinterstoisser, O. Kutter, N. Navab, P. Fua, and V. Lepetit,
+        "Real-Time Learning of Accurate Patch Rectification").
+        Contributed by Victor Eruhimov
+
+      + Spin Images 3D feature descriptor - based on the A. Johnson PhD thesis;
+        implemented by Anatoly Baksheev
+
+      + Self-similarity features - contributed by Rainer Leinhart
+
+      + HOG people and object detector - the reimplementation of Navneet Dalal framework
+        (http://pascal.inrialpes.fr/soft/olt/). Currently, only the detection part is ported,
+        but it is fully compatible with the original training code.
+        See cvaux.hpp and opencv/samples/c/peopledetect.cpp.
+
+      + Extended variant of the Haar feature-based object detector - implemented by Maria Dimashova.
+        It now supports Haar features and LBPs (local binary patterns);
+        other features can be more or less easily added
+
+      + Adaptive skin detector and the fuzzy meanshift tracker - contributed by Farhad Dadgostar,
+        see cvaux.hpp and opencv/samples/c/adaptiveskindetector.cpp
+
+    * The new traincascade application complementing the new-style HAAR+LBP object detector has been added.
+      See opencv/apps/traincascade.
+
+    * The powerful library for approximate nearest neighbor search FLANN by Marius Muja
+      is now shipped with OpenCV, and the OpenCV-style interface to the library
+      is included into cxcore. See cxcore.hpp and opencv/samples/c/find_obj.cpp
+
+    * The bundle adjustment engine has been contributed by PhaseSpace; see cvaux.hpp
+
+    * Added dense optical flow estimation function (based on the paper
+      "Two-Frame Motion Estimation Based on Polynomial Expansion" by G. Farnerback).
+      See cv::calcOpticalFlowFarneback and the C++ documentation
+
+    * Image warping operations (resize, remap, warpAffine, warpPerspective)
+      now all support bicubic and Lanczos interpolation.
+
+    * Most of the new linear and non-linear filtering operations (filter2D, sepFilter2D, erode, dilate ...)
+      support arbitrary border modes and can use the valid image pixels outside of the ROI
+      (i.e. the ROIs are not "isolated" anymore), see the C++ documentation.
+
+    * The data can now be saved to and loaded from GZIP-compressed XML/YML files, e.g.:
+      cvSave("a.xml.gz", my_huge_matrix);
+
+  - MLL:
+    * Added the Extremely Random Trees that train super-fast,
+      comparing to Boosting or Random Trees (by Maria Dimashova).
+
+    * The decision tree engine and based on it classes
+      (Decision Tree itself, Boost, Random Trees)
+      have been reworked and now:
+      + they consume much less memory (up to 200% savings)
+      + the training can be run in multiple threads (when OpenCV is built with OpenMP support)
+      + the boosting classification on numerical variables is especially
+        fast because of the specialized low-overhead branch.
+
+    * mltest has been added. While far from being complete,
+      it contains correctness tests for some of the MLL classes.
+
+  - HighGUI:
+    * [Linux] The support for stereo cameras (currently Videre only) has been added.
+      There is now uniform interface for capturing video from two-, three- ... n-head cameras.
+
+    * Images can now be compressed to or decompressed from buffers in the memory,
+      see the C++ HighGUI reference manual
+
+  - Documentation:
+    * The reference manual has been converted from HTML to LaTeX (by James Bowman and Caroline Pantofaru),
+      so there is now:
+      + opencv.pdf for reading offline
+      + and the online up-to-date documentation
+        (as the result of LaTeX->Sphinx->HTML conversion) available at
+        http://opencv.willowgarage.com/documentation/index.html
+
+  - Samples, misc.:
+    * Better eye detector has been contributed by Shiqi Yu,
+      see opencv/data/haarcascades/*[lefteye|righteye]*.xml
+    * sample LBP cascade for the frontal face detection
+      has been created by Maria Dimashova,
+      see opencv/data/lbpcascades/lbpcascade_frontalface.xml
+    * Several high-quality body parts and facial feature detectors
+      have been contributed by Modesto Castrillon-Santana,
+      see opencv/data/haarcascades/haarcascade_mcs*.xml
+
+>>> Optimization:
+    * Many of the basic functions and the image processing operations
+      (like arithmetic operations, geometric image transformations, filtering etc.)
+      have got SSE2 optimization, so they are several times faster.
+
+    - The model of IPP support has been changed. Now IPP is supposed to be
+      detected by CMake at the configuration stage and linked against OpenCV.
+      (In the beta it is not implemented yet though).
+
+    * PNG encoder performance improved by factor of 4 by tuning the parameters
+
+>>> Bug fixes: <<<
+    TBD
+    (see http://sourceforge.net/tracker/?group_id=22870&atid=376677 of the list
+    of the closed and still opened bugs).
+
+    Many thanks to everybody who submitted bug reports and/or provided the patches!
+
+>>> Known issues:
+    * configure+autotools based build is currently broken.
+      Please, use CMake.
+    * OpenCV bug tracker at SF still lists about 150 open bugs.
+      Some of them may be actually fixed already, and most of the remaining bugs
+      are going to be fixed by OpenCV 2.0 gold.
+    * IPP is not supported. As the new OpenCV includes a lot of SSE2 code,
+      it may be not such a serious problem, though.
+      The support (at least for most important functions that do not have
+      SSE2 optimization) will be returned in 2.0 gold.
+    * The documentation has been updated and improved a lot, but it still
+      needs quite a bit of work:
+        - some of the new functionality in cvaux is not described yet.
+        - the bibliography part is broken
+        - there are quite a few known bugs and typos there
+        - many of the hyperlinks are not working.
+    * The existing tests partly cover the new functionality
+      (via the old backward-compatibility OpenCV 1.x API), but the coverage is
+      not sufficient of course.
+    * The new-style Python interface is not included yet  
+
+    Many of the problems will be addressed in 2.0 gold.
+    If you have found some specific problem, please, put the record to the bug tracker:
+    http://sourceforge.net/tracker/?group_id=22870
+    Better if the bug reports will include a small code sample in C++/python +
+    all the necessary data files needed to reproduce the problem.
+</pre>
+    
+    
 <h2>2.0</h2>
 <p class="Blurb"><i>(September, 2009)</i></p>
 
index 62c1fb5e6d75819eb6096fa51ff23ced0ced9b9a..d56ecf5f3a58856898024df2a7006d9a40c9f986 100644 (file)
@@ -184,7 +184,7 @@ in the case of 8-bit and 16-bit images
 R, G and B are converted to floating-point format and scaled to fit the 0 to 1 range.
 \[ V_{max} \leftarrow {max}(R,G,B) \]
 \[ V_{min} \leftarrow {min}(R,G,B) \]
-\[ L \leftarrow \frac{V_{max} - V_{min}}{2} \]
+\[ L \leftarrow \frac{V_{max} + V_{min}}{2} \]
 \[ S \leftarrow \fork
 {\frac{V_{max} - V_{min}}{V_{max} + V_{min}}}{if $L < 0.5$}
 {\frac{V_{max} - V_{min}}{2 - (V_{max} + V_{min})}}{if $L \ge 0.5$} \]
@@ -193,7 +193,7 @@ R, G and B are converted to floating-point format and scaled to fit the 0 to 1 r
 {{120+60(B - R)}/{S}}{if $V_{max}=G$}
 {{240+60(R - G)}/{S}}{if $V_{max}=B$} \]
 if $H<0$ then $H \leftarrow H+360$
-On output $0 \leq V \leq 1$, $0 \leq S \leq 1$, $0 \leq H \leq 360$.
+On output $0 \leq L \leq 1$, $0 \leq S \leq 1$, $0 \leq H \leq 360$.
 
 The values are then converted to the destination data type:
 \begin{description}
@@ -838,7 +838,7 @@ H, S, V are left as is
   R, G and B are converted to floating-point format and scaled to fit the 0 to 1 range.
   \[ V_{max} \leftarrow {max}(R,G,B) \]
   \[ V_{min} \leftarrow {min}(R,G,B) \]
-  \[ L \leftarrow \frac{V_{max} - V_{min}}{2} \]
+  \[ L \leftarrow \frac{V_{max} + V_{min}}{2} \]
   \[ S \leftarrow \fork
     {\frac{V_{max} - V_{min}}{V_{max} + V_{min}}}{if $L < 0.5$}
     {\frac{V_{max} - V_{min}}{2 - (V_{max} + V_{min})}}{if $L \ge 0.5$} \]
@@ -847,7 +847,7 @@ H, S, V are left as is
   {{120+60(B - R)}/{S}}{if $V_{max}=G$}
   {{240+60(R - G)}/{S}}{if $V_{max}=B$} \]
   if $H<0$ then $H \leftarrow H+360$
-On output $0 \leq V \leq 1$, $0 \leq S \leq 1$, $0 \leq H \leq 360$.
+On output $0 \leq L \leq 1$, $0 \leq S \leq 1$, $0 \leq H \leq 360$.
 
 The values are then converted to the destination data type:
 \begin{description}
index 44812360172607f8ff808bc734222109c1ad306a..167e3dacb3bc6ca0d4c0643d2fb3c28f6b6aad92 100644 (file)
@@ -1018,7 +1018,7 @@ Computes eigenvalues and eigenvectors of a symmetric matrix.
 
 \cvdefC{
 void cvEigenVV(\par CvArr* mat,\par CvArr* evects,\par CvArr* evals,\par double eps=0,
-\par int lowindex = 0, \par int highindex = 0);}
+\par int lowindex = -1, \par int highindex = -1);}
 \cvdefPy{EigenVV(mat,evects,evals,eps,lowindex,highindex)-> None}
 
 \begin{description}
@@ -1041,8 +1041,8 @@ mat*evects(i,:)' = evals(i)*evects(i,:)' (in MATLAB notation)
 \end{lstlisting}
 
 If either low- or highindex is supplied the other is required, too.
-Indexing is 1-based. Example: To calculate the largest eigenvector/-value set
-lowindex = highindex = 1.
+Indexing is 0-based. Example: To calculate the largest eigenvector/-value set
+\texttt{lowindex=highindex=0}. To calculate all the eigenvalues, leave \texttt{lowindex=highindex=-1}.
 For legacy reasons this function always returns a square matrix the same size
 as the source matrix with eigenvectors and a vector the length of the source
 matrix with eigenvalues. The selected eigenvectors/-values are always in the
index 61fad22f8286e4fab26835eb7a3815d08696505a..a01bcf73112c0ea8e6bf1511d50aee84b9324ca0 100644 (file)
@@ -521,7 +521,7 @@ IplImage;
 \cvarg{ID}{Version, always equals 0}
 \cvarg{nChannels}{Number of channels. Most OpenCV functions support 1-4 channels.}
 \cvarg{alphaChannel}{Ignored by OpenCV}
-\cvarg{depth}{Pixel depth in bits. The supported depths are:
+\cvarg{depth}{Channel depth in bits + the optional sign bit (IPL_DEPTH_SIGN). The supported depths are:
 \begin{description}
 \cvarg{IPL\_DEPTH\_8U}{Unsigned 8-bit integer}
 \cvarg{IPL\_DEPTH\_8S}{Signed 8-bit integer}
index 9bb0ef2a0631acea457589c50ed0927d618a3ded..37dfe7211413fcb9b1d1b1ae6f3bbc27fa5f133f 100644 (file)
@@ -810,13 +810,14 @@ Draws a text string
  \texttt{FONT\_HERSHEY\_COMPLEX\_SMALL}, \texttt{FONT\_HERSHEY\_SCRIPT\_SIMPLEX} or \texttt{FONT\_HERSHEY\_SCRIPT\_COMPLEX},
    where each of the font id's can be combined with \texttt{FONT\_HERSHEY\_ITALIC} to get the slanted letters.}
 \cvarg{fontScale}{The font scale factor that is multiplied by the font-specific base size}
+\cvarg{color}{The text color}
 \cvarg{thickness}{Thickness of the lines used to draw the text}
 \cvarg{lineType}{The line type; see \texttt{line} for details}
 \cvarg{bottomLeftOrigin}{When true, the image data origin is at the bottom-left corner, otherwise it's at the top-left corner}
 \end{description}
 
-The function \texttt{putText} draws a text string in the image.
+The function \texttt{putText} renders the specified text string in the image.
 Symbols that can not be rendered using the specified font are
-replaced question marks. See \cvCppCross{getTextSize} for a text rendering code example.
+replaced by question marks. See \cvCppCross{getTextSize} for a text rendering code example.
 
 \fi
index abbfebf03d43f22ca36460388bfa5c13a695fae9..4d70d801ff7a6851b55c5d5c7dd0018c07d2b498 100644 (file)
@@ -3,6 +3,7 @@
  */
 
 #include <iostream>
+#include <cstdio>
 #include <stdio.h>
 #include "cv.h"
 #include "highgui.h"