updated version number; removed unnecessary index.html and ChangeLog.htm
This commit is contained in:
parent
ea3ccc6d61
commit
a7a5dd051a
CMakeLists.txtPackage.cmake.inREADME
android
doc
modules/core/include/opencv2/core
@ -68,7 +68,7 @@ endif()
|
||||
# ----------------------------------------------------------------------------
|
||||
# Current version number:
|
||||
# ----------------------------------------------------------------------------
|
||||
set(OPENCV_VERSION "2.1.1")
|
||||
set(OPENCV_VERSION "2.2.0")
|
||||
|
||||
string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")
|
||||
|
||||
@ -1098,10 +1098,9 @@ if(WIN32)
|
||||
|
||||
#exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")
|
||||
exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"" OUTPUT_VARIABLE RET_VAL)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
|
||||
|
||||
#Install the OpenCVConfig.cmake file which has the right paths pointing to the install directory
|
||||
install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/")
|
||||
#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
|
||||
# Install the OpenCVConfig.cmake file which has the right paths pointing to the install directory
|
||||
install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/")
|
||||
|
||||
# if videoInput support is enabled (which is by default on WIN32) copy the static library required to the installation path
|
||||
# DESTINATION could also be "${CMAKE_INSTALL_PREFIX}/lib") to simplify dev environment setup of client applications
|
||||
|
@ -74,13 +74,13 @@ if(WIN32)
|
||||
#set(CPACK_PACKAGE_ICON "utils/opencv.ico")
|
||||
|
||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_SOURCE_DIR}\\\\doc\\\\opencv.ico")
|
||||
set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\opencvlibrary.sourceforge.net")
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\opencvlibrary.sourceforge.net")
|
||||
set(CPACK_NSIS_CONTACT "info@opencvlibrary.sourceforge.net")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "OpenCV SDK")
|
||||
set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\opencv.willowgarage.com")
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\opencv.willowgarage.com")
|
||||
set(CPACK_NSIS_CONTACT "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "Open Source Computer Vision Library")
|
||||
|
||||
set(CPACK_NSIS_MENU_LINKS
|
||||
"doc\\\\index.htm" "Start Page"
|
||||
"http://opencv.willowgarage.com" "Start Page"
|
||||
"doc\\\\opencv.pdf" "The Reference Manual"
|
||||
"CMakeLists.txt" "The Build Script (open with CMake)"
|
||||
"samples\\\\c" "C Samples"
|
||||
|
2
README
2
README
@ -1 +1 @@
|
||||
See doc/index.htm
|
||||
See http://opencv.willowgarage.com
|
||||
|
@ -131,13 +131,13 @@
|
||||
#define PACKAGE_NAME "opencv"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "opencv 2.1.0"
|
||||
#define PACKAGE_STRING "opencv 2.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "opencv"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "2.1.0"
|
||||
#define PACKAGE_VERSION "2.2.0"
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
@ -148,7 +148,7 @@
|
||||
/* #undef STACK_DIRECTION */
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "2.1.0"
|
||||
#define VERSION "2.2.0"
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
|
@ -1,525 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>OpenCV ChangeLog</title>
|
||||
<style TYPE="text/css">
|
||||
<!--
|
||||
P.Blurb {
|
||||
margin-top: -10pt;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
</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.
|
||||
|
||||
- Experimental "static" OpenCV configuration in CMake was contributed by Jose Luis Blanco.
|
||||
Pass "BUILD_SHARED_LIBS=OFF" to CMake to build OpenCV statically.
|
||||
|
||||
>>> 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</h2>
|
||||
<p class="Blurb"><i>(September, 2009)</i></p>
|
||||
|
||||
<pre>
|
||||
>>> New functionality, features:
|
||||
|
||||
- General:
|
||||
* Installation package on Windows has been fixed,
|
||||
MinGW is used for precompiled binaries
|
||||
(see the release notes on the SourceForge site)
|
||||
|
||||
* autotools-based build has been repaired
|
||||
|
||||
- MLL:
|
||||
* The new-style class aliases (e.g. cv::SVM ~ CvSVM) and the train/predict methods,
|
||||
taking cv::Mat in addition to CvMat, have been added. So now MLL can be used
|
||||
more seamlesly with the rest of the restyled OpenCV.
|
||||
|
||||
>>> Bug fixes:
|
||||
|
||||
- A _lot_ of bugs present in 2.0 beta have been fixed, see the OpenCV bug tracker
|
||||
http://sourceforge.net/tracker/?group_id=22870&atid=376677
|
||||
Thanks to everybody who submitted bug reports and/or patches!
|
||||
</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>
|
||||
|
||||
<hr><h2>1.1pre1</h2>
|
||||
<p class="Blurb"><i>(October, 2008)</i></p>
|
||||
|
||||
<pre>
|
||||
|
||||
>>> New functionality/features: <<<
|
||||
|
||||
- General:
|
||||
* Octave bindings have been added. See interfaces/swig/octave (for now, Linux only)
|
||||
* [Windows] OpenCV is now built with VS2005 with SSE2 and OpenMP support
|
||||
included (if you want to rebuild OpenCV using Express or
|
||||
Standard Edition of VS, use _make\opencv.vs2005.no_openmp.sln).
|
||||
* [Windows] Python bindings have been updated to use Python 2.6
|
||||
* [Windows] cvcam has been removed (as videoInput is now supported by highgui)
|
||||
|
||||
- CXCORE, CV, CVAUX:
|
||||
* Speeded-up Robust Features (SURF), contributed by Liu Liu.
|
||||
see samples/c/find_obj.cpp and the documentation opencvref_cv.htm
|
||||
* Many improvements in camera calibration:
|
||||
- Added stereo camera calibration: cvStereoCalibrate, cvStereoRectify etc.
|
||||
- Single camera calibration now uses Levenberg-Marquardt method and supports
|
||||
extra flags to switch on/off optimization of individual camera parameters
|
||||
- The optional 3rd radial distortion parameter (k3*r^6) is now supported in
|
||||
every calibration-related function
|
||||
* 2 stereo correspondence algorithms:
|
||||
- very fast block matching method by Kurt Konolige
|
||||
(processes the Tsukuba stereo pair in <10ms on Core2Duo laptop)
|
||||
- slow but more accurate graph-cut based algorithm by Kolmogorov and Zabin
|
||||
* Better homography estimation algorithms (RANSAC and LMEDs)
|
||||
* new C++ template image classes contributed by Daniel Filip (Google inc.).
|
||||
see opencv/cxcore/include/cvwimage.h
|
||||
* Fast approximate nearest neighbor search (by Xavier Delacour)
|
||||
* Codebook method for background/foreground segmentation (by Gary Bradski)
|
||||
* Sort function (contributed by Shiqi Yu)
|
||||
* [OpenCV+IPP] Face Detection (cvHaarDetectObjects) now runs much faster
|
||||
(up to 2x faster) when using IPP 5.3 or higher.
|
||||
* Much faster (~4x faster) fixed-point variant of cvRemap has been added
|
||||
|
||||
- MLL:
|
||||
* Python bindings for MLL have been added. There are no samples yet.
|
||||
|
||||
- HighGUI:
|
||||
* [Windows, 32bit] Added support for videoInput library.
|
||||
Hence, cvcam is [almost] not needed anymore
|
||||
* [Windows, 32bit] FFMPEG can now be used for video decoding/encoding
|
||||
via ffopencv*.dll
|
||||
* [Linux] Added unicap support
|
||||
* Improved internal video capturing and video encoding APIs
|
||||
|
||||
- Documentation:
|
||||
* OpenCV book has been published (sold separately :) see docs/index.htm)
|
||||
|
||||
- New samples (opencv/samples):
|
||||
* Many Octave samples
|
||||
* find_obj.cpp (SURF), bgfg_codebook.cpp (Codebook BG/FG segmentation),
|
||||
stereo_calib.cpp (Stereo calibration and stereo correspondence)
|
||||
|
||||
>>> Bug fixes: <<<
|
||||
Many thanks to everybody who submitted bug reports and/or provided the patches!
|
||||
|
||||
* added dma_unlisten to icvCloseCAM_DC1394 (thanks to Victor Benso)
|
||||
* LMEDs algorithm for cvFindFundamentalMat estimation has been fixed
|
||||
* Broken debug build of highgui in VS2005/2008 (SF #2056185, SF #1709435)
|
||||
* cvFindChessboardCorners memory leak and incorrect size checks
|
||||
(SF #1972896, SF #1910323)
|
||||
* disabling GTK causes v4l runtime error (SF #2088102)
|
||||
* cvsetmousecallback bug (SF #2053529)
|
||||
* libhighgui needed deprecated "img_convert" replacement (SF #2011753)
|
||||
* Segfault in createsamples caused by uninitialized variable (SF #1977989)
|
||||
* Data Alignment Issue in bgfg_gaussmix (SF #1961755)
|
||||
* libpng need to be updated (SF #1952793)
|
||||
* cvCreateVideoWriter_Win32 - identifier not found (SF #1944254)
|
||||
* Bug in cvmorph.cpp (SF #1908844)
|
||||
* dilate (cvDilate) works bogus with default kernel (SF #1887130)
|
||||
* CvEM non-default constructor declared but not defined (SF #1830346)
|
||||
* cvFloodFill (in ver 1.0) Hangs (SF #1790565)
|
||||
* double delete in CvImage (SF #1733437)
|
||||
* cvFilter2D anchor default value is not working properly (SF #1713779)
|
||||
* cvCvtColor - Bug? in converting HSV2RGB (SF #1676344)
|
||||
* Invalid selection of the MKL-dll version in cvUseOptimized() (SF #1633017)
|
||||
* ...
|
||||
|
||||
>>> Known issues:
|
||||
* Borland compiler is not supported (but might work) in this update.
|
||||
* 64-bit Windows is not supported (but might work) in this update.
|
||||
* SF bug tracker still contains over 50 records of open bugs.
|
||||
Many of them will be addressed in the next update.
|
||||
</pre>
|
||||
|
||||
<hr><h2>1.0</h2>
|
||||
<p class="Blurb"><i>(October, 2006)</i></p>
|
||||
|
||||
<pre>
|
||||
>>> New functionality/features: <<<
|
||||
|
||||
- General:
|
||||
* Windows installation package now includes precompiled Python module
|
||||
* Borland C++ (v5.6+) makefiles re-added (see _make\make_all_bc.mak)
|
||||
|
||||
- CV:
|
||||
* Inpainting was added, see samples/c/inpaint.cpp
|
||||
(thanks to Alexander Kibkalo and Alexey Kalinichenko)
|
||||
|
||||
- MLL:
|
||||
* Boosted tree classifiers added, see MLL reference manual
|
||||
|
||||
- HighGUI:
|
||||
* Jpeg2000 and EXR support in highgui using JasPer and OpenEXR (thanks to Nils Hasler)
|
||||
OpenEXR is not built-in to highgui on Windows by default. See
|
||||
otherlibs/_graphics/readme.txt.
|
||||
* >8-bit image input/output for PNG, Jpeg2000 and OpenEXR (thanks to Nils Hasler)
|
||||
* Updated CMUcamera wrapper.
|
||||
* Several V4L2 improvements and fixes
|
||||
|
||||
- New samples (opencv/samples):
|
||||
* Camera calibration sample: calibrate.cpp
|
||||
* Inpainting sample: inpaint.cpp
|
||||
* Letter recognition using the existing database with
|
||||
random trees/boosted trees/neural nets: leter_recog.cpp
|
||||
* A few new Python samples.
|
||||
|
||||
- Tests:
|
||||
* Most old cv tests have been rewritten/converted to use cxts instead of trs.
|
||||
TRS is not used by the tests anymore.
|
||||
|
||||
>>> Bug fixes: <<<
|
||||
Many thanks to everybody who submitted bug reports and/or provided the patches!
|
||||
|
||||
* Incorrect normalization in cvFindFundamentalMat (SF #1550855)
|
||||
* Occasional cvGetQuadrangleSubPix crashes (SF #1549168)
|
||||
* Occasional cvCalcOpticalFlowPyrLK crashes
|
||||
* Internal GCC 3.x error in cvFloor/cvCeil (SF #1546657)
|
||||
* Several Python-related bugs (SF #1570109, SF #1572800, SF #1543593)
|
||||
* Bugs in contour processing/rendering (SF #1550889,
|
||||
* x86-64 related bugs (SF #1526133, SF #1527997)
|
||||
* OpenCV dispatcher tried to load old versions of IPP (pre 4.x)
|
||||
that caused many failures (see SF #1555093, for example)
|
||||
* Inaccurate results in some cases in cvFitEllipse, cvFitLine, cvHoughCircles.
|
||||
* Severe bug in Bayesian classifier, broken regression tree in MLL
|
||||
* Overflow in blurring filter
|
||||
* cvSaveImage() modified saved images leading to potential problems in threaded apps.
|
||||
* Numeric values in XML/YAML were emitted/parsed incorrectly
|
||||
on some non-US locales in Linux
|
||||
* VS2005 Express/Standard Editions could not build OpenCV
|
||||
(due to missing OpenMP support)
|
||||
* ...
|
||||
|
||||
>>> Known issues:
|
||||
* Certain tests may fail on IA64 (Itanium), e.g.
|
||||
gaussian filter, fundamental matrix estimation, chessboard detector.
|
||||
...
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
116
doc/index.htm
116
doc/index.htm
@ -1,116 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html><head>
|
||||
<title>OpenCV Documentation</title>
|
||||
</head><body>
|
||||
|
||||
<center><table cellspacing=0 cellpadding=5 bgcolor="#6a9bed">
|
||||
<tr>
|
||||
<td rowspan="2">
|
||||
<img src="opencv-logo.png" width="200"></td>
|
||||
<td>
|
||||
<center><i><font color="#000000"><font size=+4>
|
||||
Open Source Computer Vision Library
|
||||
</font></font></i></center>
|
||||
</td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<!-- <p align="center"><img src="opencv.jpg"></a></p>
|
||||
|
||||
<hr>-->
|
||||
|
||||
<h1>What is OpenCV</h1>
|
||||
|
||||
<p>OpenCV means Open Source Computer Vision Library.
|
||||
It is a collection of C functions and a few C++ classes that implement
|
||||
many popular Image Processing and Computer Vision algorithms.</p>
|
||||
|
||||
<hr>
|
||||
<h1><a name="#ref">OpenCV Book</a></h1>
|
||||
|
||||
The official book for OpenCV is published by O'Reilly Press
|
||||
Learning OpenCV Computer Vision with the OpenCV Library
|
||||
by Gary Bradski and Adrian Kaehler
|
||||
<a href="http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134">
|
||||
http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134
|
||||
</a>
|
||||
|
||||
<p>
|
||||
This book is:
|
||||
<ol>
|
||||
<li>A tutorial on computer vision in general
|
||||
<li>A user's guide to OpenCV
|
||||
<li>A source of useful working sample code and detailed function descriptions.
|
||||
</ol>
|
||||
|
||||
<hr>
|
||||
|
||||
<h1>The key features</h1>
|
||||
|
||||
<p>OpenCV provides cross-platform middle-to-high level API that includes
|
||||
about 300 functions and a few C++ classes. Also there are
|
||||
constantly improving Python bindings to OpenCV, see
|
||||
interfaces/swig/python and samples/python.
|
||||
OpenCV has no strict dependencies on external libraries,
|
||||
though it can use some (such as libjpeg, ffmpeg, GTK+ etc.)
|
||||
when it is possible.</p>
|
||||
|
||||
<p>OpenCV is free for both non-commercial and commercial use
|
||||
(see the <a href="license.txt">license</a> for details).</p>
|
||||
|
||||
<p><a name="#ipp">OpenCV can be built with Intel® Integrated Performance
|
||||
Primitives (IPP).</a>
|
||||
This makes it fast on all the architectures supported by the library,
|
||||
where the optimal code for each host architecture is chosen at runtime.
|
||||
|
||||
More information about IPP can be retrieved at
|
||||
<a href="http://www.intel.com/software/products/ipp/index.htm">
|
||||
http://www.intel.com/software/products/ipp/index.htm</a></p>
|
||||
|
||||
Then, OpenCV itself can be built with <a href="http://www.threadingbuildingblocks.org/">TBB</a>
|
||||
support, and, starting with v2.0,
|
||||
OpenCV also includes SSE2-optimized code, so many of the functions run significantly
|
||||
faster on the modern 32-bit x86 and 64-bit x64 platforms, and even faster on dual-,
|
||||
quad- and many-core systems.
|
||||
|
||||
<hr>
|
||||
|
||||
<h1>Who created it</h1>
|
||||
The list of authors and major contributors can be found at
|
||||
<a href="http://opencv.willowgarage.com/wiki/Contributors">http://opencv.willowgarage.com/wiki/Contributors</a>.</p>
|
||||
<hr>
|
||||
|
||||
<h1>What's New</h1>
|
||||
<p>See the <a href="ChangeLog.htm">ChangeLog</a>.
|
||||
<hr>
|
||||
|
||||
<h1>Where to get OpenCV</h1>
|
||||
<p>Go <a href="http://www.sourceforge.net/projects/opencvlibrary">http://www.sourceforge.net/projects/opencvlibrary</a>.
|
||||
If it does not work, type "OpenCV" in
|
||||
<a href="http://www.google.com/search?hl=en&ie=UTF-8&q=opencv+computer+vision&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=">Google (http://www.google.com)</a>.</p>
|
||||
|
||||
<hr>
|
||||
<h1>How to build it</h1>
|
||||
<p>See the installation guide: <a href="http://opencv.willowgarage.com/wiki/InstallGuide">http://opencv.willowgarage.com/wiki/InstallGuide</a>.
|
||||
|
||||
<hr>
|
||||
|
||||
<h1><a name="troubleshooting">If you have a problem with installing/running/using OpenCV</a></h1>
|
||||
|
||||
<ol>
|
||||
<li>Visit OpenCV Wiki-pages at
|
||||
<a href="http://opencv.willowgarage.com/wiki/">http://opencv.willowgarage.com/wiki/</a> and
|
||||
look for the information there (and/or add it when you have found a solution)
|
||||
<li>Search through OpenCV archives at www.yahoogroups.com
|
||||
(<a href="http://groups.yahoo.com/group/OpenCV/">http://groups.yahoo.com/group/OpenCV/</a>)
|
||||
<li>Join OpenCV mailing list at yahoo groups (see FAQs on how to do it) and mail your questions
|
||||
(the mailing list will probably migrate to
|
||||
<a href="http://www.sourceforge.net/projects/opencvlibrary">OpenCV's SourceForge site</a>)
|
||||
<li>Look at the OpenCV sample code, read the reference manual <a href="opencv.pdf">offline in PDF</a>
|
||||
or online (<a href="http://opencv.willowgarage.com/documentation/c/index.html">C</a>,
|
||||
<a href="http://opencv.willowgarage.com/documentation/cpp/index.html">C++</a> and
|
||||
<a href="http://opencv.willowgarage.com/documentation/python/index.html">Python</a>).
|
||||
|
||||
</ol>
|
||||
|
||||
</body></html>
|
@ -46,9 +46,9 @@ copyright = u'2010, authors'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '2.1'
|
||||
version = '2.2'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '2.1'
|
||||
release = '2.2'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
281239
doc/opencv.pdf
281239
doc/opencv.pdf
File diff suppressed because it is too large
Load Diff
@ -68,8 +68,8 @@ backgroundcolor=\color{shadecolor}
|
||||
%%%%%%%%%%%%%%%
|
||||
|
||||
\title{OpenCV Reference Manual} % used by \maketitle
|
||||
\author{v2.1} % used by \maketitle
|
||||
\date{March 18, 2010} % used by \maketitle
|
||||
\author{v2.2} % used by \maketitle
|
||||
\date{December, 2010} % used by \maketitle
|
||||
|
||||
\begin{document}
|
||||
\maketitle % automatic title!
|
||||
|
Binary file not shown.
@ -134,7 +134,7 @@
|
||||
\setlength{\columnsep}{2pt}
|
||||
|
||||
\begin{center}
|
||||
\Large{\textbf{OpenCV 2.1 Cheat Sheet (C++)}} \\
|
||||
\Large{\textbf{OpenCV 2.2 Cheat Sheet (C++)}} \\
|
||||
\end{center}
|
||||
\newlength{\MyLen}
|
||||
\settowidth{\MyLen}{\texttt{letterpaper}/\texttt{a4paper} \ }
|
||||
@ -153,17 +153,17 @@
|
||||
\section{Key OpenCV Classes}
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#point}{Point\_}} & Template 2D point class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#point3}{Point3\_}} & Template 3D point class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#size}{Size\_}} & Template size (width, height) class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#vec}{Vec}} & Template short vector class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#scalar}{Scalar}} & 4-element vector \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#rect}{Rect}} & Rectangle \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#range}{Range}} & Integer value range \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#mat}{Mat}} & 2D dense array (used as both a matrix or an image)\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#matnd}{MatND}} & Multi-dimensional dense array \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#sparsemat}{SparseMat}} & Multi-dimensional sparse array \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#ptr}{Ptr}} & Template smart pointer class
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#point}{Point\_}} & Template 2D point class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#point3}{Point3\_}} & Template 3D point class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#size}{Size\_}} & Template size (width, height) class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#vec}{Vec}} & Template short vector class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#vec}{Matx}} & Template small matrix class \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#scalar}{Scalar}} & 4-element vector \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#rect}{Rect}} & Rectangle \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#range}{Range}} & Integer value range \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#mat}{Mat}} & 2D or multi-dimensional dense array (can be used to store matrices, images, histograms, feature descriptors, voxel volumes etc.)\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#sparsemat}{SparseMat}} & Multi-dimensional sparse array \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#ptr}{Ptr}} & Template smart pointer class
|
||||
\end{tabular}
|
||||
|
||||
\section{Matrix Basics}
|
||||
@ -173,7 +173,7 @@
|
||||
\> \texttt{Mat image(240, 320, CV\_8UC3);} \\
|
||||
|
||||
\textbf{[Re]allocate a pre-declared matrix}\\
|
||||
\> \texttt{image.\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::create}{create}(480, 640, CV\_8UC3);}\\
|
||||
\> \texttt{image.\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::create}{create}(480, 640, CV\_8UC3);}\\
|
||||
|
||||
\textbf{Create a matrix initialized with a constant}\\
|
||||
\> \texttt{Mat A33(3, 3, CV\_32F, Scalar(5));} \\
|
||||
@ -189,8 +189,8 @@
|
||||
\> \texttt{Mat B22 = Mat(2, 2, CV\_32F, B22data).clone();}\\
|
||||
|
||||
\textbf{Initialize a random matrix}\\
|
||||
\> \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-randu}{randu}(image, Scalar(0), Scalar(256)); }\textit{// uniform dist}\\
|
||||
\> \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-randn}{randn}(image, Scalar(128), Scalar(10)); }\textit{// Gaussian dist}\\
|
||||
\> \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-randu}{randu}(image, Scalar(0), Scalar(256)); }\textit{// uniform dist}\\
|
||||
\> \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-randn}{randn}(image, Scalar(128), Scalar(10)); }\textit{// Gaussian dist}\\
|
||||
|
||||
\textbf{Convert matrix to/from other structures}\\
|
||||
\>\textbf{(without copying the data)}\\
|
||||
@ -230,32 +230,32 @@
|
||||
\section{Matrix Manipulations: Copying, Shuffling, Part Access}
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::copyTo}{src.copyTo(dst)}} & Copy matrix to another one \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::convertTo}{src.convertTo(dst,type,scale,shift)}} & \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Scale and convert to another datatype \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::clone}{m.clone()}} & Make deep copy of a matrix \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::reshape}{m.reshape(nch,nrows)}} & Change matrix dimensions and/or number of channels without copying data \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::copyTo}{src.copyTo(dst)}} & Copy matrix to another one \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::convertTo}{src.convertTo(dst,type,scale,shift)}} & \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Scale and convert to another datatype \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::clone}{m.clone()}} & Make deep copy of a matrix \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::reshape}{m.reshape(nch,nrows)}} & Change matrix dimensions and/or number of channels without copying data \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::row}{m.row(i)}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::col}{m.col(i)}} & Take a matrix row/column \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::row}{m.row(i)}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::col}{m.col(i)}} & Take a matrix row/column \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::rowRange}{m.rowRange(Range(i1,i2))}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::colRange}{m.colRange(Range(j1,j2))}} & \ \ \ \ \ \ \ Take a matrix row/column span \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::rowRange}{m.rowRange(Range(i1,i2))}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::colRange}{m.colRange(Range(j1,j2))}} & \ \ \ \ \ \ \ Take a matrix row/column span \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::diag}{m.diag(i)}} & Take a matrix diagonal \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::diag}{m.diag(i)}} & Take a matrix diagonal \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#index-1245}{m(Range(i1,i2),Range(j1,j2)), m(roi)}} & \ \ \ \ \ \ \ \ \ \ \ \ \ Take a submatrix \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#index-1245}{m(Range(i1,i2),Range(j1,j2)), m(roi)}} & \ \ \ \ \ \ \ \ \ \ \ \ \ Take a submatrix \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html\#Mat::repeat}{m.repeat(ny,nx)}} & Make a bigger matrix from a smaller one \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html\#Mat::repeat}{m.repeat(ny,nx)}} & Make a bigger matrix from a smaller one \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-flip}{flip(src,dst,dir)}} & Reverse the order of matrix rows and/or columns \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-flip}{flip(src,dst,dir)}} & Reverse the order of matrix rows and/or columns \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-split}{split(...)}} & Split multi-channel matrix into separate channels \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-split}{split(...)}} & Split multi-channel matrix into separate channels \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-merge}{merge(...)}} & Make a multi-channel matrix out of the separate channels \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-merge}{merge(...)}} & Make a multi-channel matrix out of the separate channels \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-mixchannels}{mixChannels(...)}} & Generalized form of split() and merge() \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-mixchannels}{mixChannels(...)}} & Generalized form of split() and merge() \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-randshuffle}{randShuffle(...)}} & Randomly shuffle matrix elements \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-randshuffle}{randShuffle(...)}} & Randomly shuffle matrix elements \\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
@ -278,15 +278,15 @@ other matrix operations, such as
|
||||
|
||||
\begin{itemize}
|
||||
\item
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-add}{add()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-subtract}{subtract()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-multiply}{multiply()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-divide}{divide()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-absdiff}{absdiff()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#bitwise-and}{bitwise\_and()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#bitwise-or}{bitwise\_or()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#bitwise-xor}{bitwise\_xor()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-max}{max()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-min}{min()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-compare}{compare()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-add}{add()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-subtract}{subtract()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-multiply}{multiply()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-divide}{divide()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-absdiff}{absdiff()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#bitwise-and}{bitwise\_and()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#bitwise-or}{bitwise\_or()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#bitwise-xor}{bitwise\_xor()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-max}{max()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-min}{min()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-compare}{compare()}}
|
||||
|
||||
-- correspondingly, addition, subtraction, element-wise multiplication ... comparison of two matrices or a matrix and a scalar.
|
||||
|
||||
@ -312,49 +312,49 @@ Exa\=mple. \href{http://en.wikipedia.org/wiki/Alpha_compositing}{Alpha compositi
|
||||
|
||||
\item
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-sum}{sum()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-mean}{mean()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-mean-stddev}{meanStdDev()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-norm}{norm()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-countnonzero}{countNonZero()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-minmaxloc}{minMaxLoc()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-sum}{sum()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-mean}{mean()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-mean-stddev}{meanStdDev()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-norm}{norm()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-countnonzero}{countNonZero()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-minmaxloc}{minMaxLoc()}},
|
||||
|
||||
-- various statistics of matrix elements.
|
||||
|
||||
\item
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-exp}{exp()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-log}{log()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-pow}{pow()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-sqrt}{sqrt()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-carttopolar}{cartToPolar()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-polarToCart}{polarToCart()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-exp}{exp()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-log}{log()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-pow}{pow()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-sqrt}{sqrt()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-carttopolar}{cartToPolar()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-polarToCart}{polarToCart()}}
|
||||
|
||||
-- the classical math functions.
|
||||
|
||||
\item
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-scaleadd}{scaleAdd()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-transpose}{transpose()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-gemm}{gemm()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-invert}{invert()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-solve}{solve()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-determinant}{determinant()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-trace}{trace()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-eigen}{eigen()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-SVD}{SVD}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-scaleadd}{scaleAdd()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-transpose}{transpose()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-gemm}{gemm()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-invert}{invert()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-solve}{solve()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-determinant}{determinant()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-trace}{trace()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-eigen}{eigen()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-SVD}{SVD}},
|
||||
|
||||
-- the algebraic functions + SVD class.
|
||||
|
||||
\item
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-dft}{dft()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-idft}{idft()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-dct}{dct()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html\#cv-idct}{idct()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-dft}{dft()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-idft}{idft()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-dct}{dct()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html\#cv-idct}{idct()}},
|
||||
|
||||
-- discrete Fourier and cosine transformations
|
||||
|
||||
\end{itemize}
|
||||
|
||||
For some operations a more convenient \href{http://opencv.willowgarage.com/documentation/cpp/basic_structures.html#matrix-expressions}{algebraic notation} can be used, for example:
|
||||
For some operations a more convenient \href{http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html#matrix-expressions}{algebraic notation} can be used, for example:
|
||||
\begin{tabbing}
|
||||
\texttt{Mat}\={} \texttt{delta = (J.t()*J + lambda*}\\
|
||||
\>\texttt{Mat::eye(J.cols, J.cols, J.type()))}\\
|
||||
@ -368,20 +368,20 @@ implements the core of Levenberg-Marquardt optimization algorithm.
|
||||
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-filter2d}{filter2D()}} & Non-separable linear filter \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-filter2d}{filter2D()}} & Non-separable linear filter \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-sepfilter2d}{sepFilter2D()}} & Separable linear filter \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-sepfilter2d}{sepFilter2D()}} & Separable linear filter \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-blur}{boxFilter()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-gaussianblur}{GaussianBlur()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-medianblur}{medianBlur()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-bilateralfilter}{bilateralFilter()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-blur}{boxFilter()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-gaussianblur}{GaussianBlur()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-medianblur}{medianBlur()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-bilateralfilter}{bilateralFilter()}}
|
||||
& Smooth the image with one of the linear or non-linear filters \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-sobel}{Sobel()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-scharr}{Scharr()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-sobel}{Sobel()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-scharr}{Scharr()}}
|
||||
& Compute the spatial image derivatives \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-laplacian}{Laplacian()}} & compute Laplacian: $\Delta I = \frac{\partial ^ 2 I}{\partial x^2} + \frac{\partial ^ 2 I}{\partial y^2}$ \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-laplacian}{Laplacian()}} & compute Laplacian: $\Delta I = \frac{\partial ^ 2 I}{\partial x^2} + \frac{\partial ^ 2 I}{\partial y^2}$ \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-erode}{erode()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/image_filtering.html\#cv-dilate}{dilate()}} & Erode or dilate the image \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-erode}{erode()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_image_filtering.html\#cv-dilate}{dilate()}} & Erode or dilate the image \\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
@ -396,17 +396,17 @@ Exa\=mple. Filter image in-place with a 3x3 high-pass kernel\\
|
||||
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-resize}{resize()}} & Resize image \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-resize}{resize()}} & Resize image \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-getrectsubpix}{getRectSubPix()}} & Extract an image patch \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-getrectsubpix}{getRectSubPix()}} & Extract an image patch \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-warpaffine}{warpAffine()}} & Warp image affinely\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-warpaffine}{warpAffine()}} & Warp image affinely\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-warpperspective}{warpPerspective()}} & Warp image perspectively\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-warpperspective}{warpPerspective()}} & Warp image perspectively\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-remap}{remap()}} & Generic image warping\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-remap}{remap()}} & Generic image warping\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html\#cv-convertmaps}{convertMaps()}} & Optimize maps for a faster remap() execution\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_geometric_image_transformations.html\#cv-convertmaps}{convertMaps()}} & Optimize maps for a faster remap() execution\\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
@ -420,21 +420,21 @@ Example. Decimate image by factor of $\sqrt{2}$:\\
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#cvtColor}{cvtColor()}} & Convert image from one color space to another \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#cvtColor}{cvtColor()}} & Convert image from one color space to another \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#threshold}{threshold()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#adaptivethreshold}{adaptivethreshold()}} & Convert grayscale image to binary image using a fixed or a variable threshold \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#threshold}{threshold()}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#adaptivethreshold}{adaptivethreshold()}} & Convert grayscale image to binary image using a fixed or a variable threshold \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#floodfill}{floodFill()}} & Find a connected component using region growing algorithm\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#floodfill}{floodFill()}} & Find a connected component using region growing algorithm\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#floodfill}{integral()}} & Compute integral image \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#floodfill}{integral()}} & Compute integral image \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#distancetransform}{distanceTransform()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#distancetransform}{distanceTransform()}}
|
||||
& build distance map or discrete Voronoi diagram for a binary image. \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#floodfill}{watershed()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html\#grabcut}{grabCut()}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#floodfill}{watershed()}},
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_miscellaneous_image_transformations.html\#grabcut}{grabCut()}}
|
||||
& marker-based image segmentation algorithms.
|
||||
See the samples \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/watershed.cpp}{watershed.cpp}} and \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/grabcut.c}{grabcut.cpp}}.
|
||||
See the samples \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/watershed.cpp}{watershed.cpp}} and \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/grabcut.cpp}{grabcut.cpp}}.
|
||||
|
||||
\end{tabular}
|
||||
|
||||
@ -443,13 +443,13 @@ Example. Decimate image by factor of $\sqrt{2}$:\\
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/histograms.html\#calchist}{calcHist()}} & Compute image(s) histogram \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_histograms.html\#calchist}{calcHist()}} & Compute image(s) histogram \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/histograms.html\#calcbackproject}{calcBackProject()}} & Back-project the histogram \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_histograms.html\#calcbackproject}{calcBackProject()}} & Back-project the histogram \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/histograms.html\#equalizehist}{equalizeHist()}} & Normalize image brightness and contrast\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_histograms.html\#equalizehist}{equalizeHist()}} & Normalize image brightness and contrast\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/histograms.html\#comparehist}{compareHist()}} & Compare two histograms\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/imgproc_histograms.html\#comparehist}{compareHist()}} & Compare two histograms\\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
@ -463,12 +463,12 @@ Example. Compute Hue-Saturation histogram of an image:\\
|
||||
\end{tabbing}
|
||||
|
||||
\subsection{Contours}
|
||||
See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/contours.cpp}{contours.cpp}} and \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/squares.c}{squares.c}}
|
||||
See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/contours.cpp}{contours.cpp}} and \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/squares.cpp}{squares.cpp}}
|
||||
samples on what are the contours and how to use them.
|
||||
|
||||
\section{Data I/O}
|
||||
|
||||
\href{http://opencv.willowgarage.com/documentation/cpp/xml_yaml_persistence.html\#filestorage}{XML/YAML storages} are collections (possibly nested) of scalar values, structures and heterogeneous lists.
|
||||
\href{http://opencv.willowgarage.com/documentation/cpp/core_xml_yaml_persistence.html\#filestorage}{XML/YAML storages} are collections (possibly nested) of scalar values, structures and heterogeneous lists.
|
||||
|
||||
\begin{tabbing}
|
||||
\textbf{Wr}\=\textbf{iting data to YAML (or XML)}\\
|
||||
@ -520,9 +520,9 @@ samples on what are the contours and how to use them.
|
||||
|
||||
\begin{tabbing}
|
||||
\textbf{Wr}\=\textbf{iting and reading raster images}\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html\#cv-imwrite}{imwrite}{imwrite}("myimage.jpg", image);}\\
|
||||
\texttt{Mat image\_color\_copy = \href{http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html\#cv-imread}{imread}("myimage.jpg", 1);}\\
|
||||
\texttt{Mat image\_grayscale\_copy = \href{http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html\#cv-imread}{imread}("myimage.jpg", 0);}\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_reading_and_writing_images_and_video.html\#cv-imwrite}{imwrite}{imwrite}("myimage.jpg", image);}\\
|
||||
\texttt{Mat image\_color\_copy = \href{http://opencv.willowgarage.com/documentation/cpp/highgui_reading_and_writing_images_and_video.html\#cv-imread}{imread}("myimage.jpg", 1);}\\
|
||||
\texttt{Mat image\_grayscale\_copy = \href{http://opencv.willowgarage.com/documentation/cpp/highgui_reading_and_writing_images_and_video.html\#cv-imread}{imread}("myimage.jpg", 0);}\\
|
||||
\end{tabbing}
|
||||
|
||||
\emph{The functions can read/write images in the following formats: \textbf{BMP (.bmp), JPEG (.jpg, .jpeg), TIFF (.tif, .tiff), PNG (.png), PBM/PGM/PPM (.p?m), Sun Raster (.sr), JPEG 2000 (.jp2)}. Every format supports 8-bit, 1- or 3-channel images. Some formats (PNG, JPEG 2000) support 16 bits per channel.}
|
||||
@ -543,61 +543,61 @@ samples on what are the contours and how to use them.
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-namedwindow}{namedWindow(winname,flags)}} & \ \ \ \ \ \ \ \ \ \ Create named highgui window \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-namedwindow}{namedWindow(winname,flags)}} & \ \ \ \ \ \ \ \ \ \ Create named highgui window \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-destroywindow}{destroyWindow(winname)}} & \ \ \ Destroy the specified window \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-destroywindow}{destroyWindow(winname)}} & \ \ \ Destroy the specified window \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-imshow}{imshow(winname, mtx)}} & Show image in the window \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-imshow}{imshow(winname, mtx)}} & Show image in the window \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-waitKey}{waitKey(delay)}} & Wait for a key press during the specified time interval (or forever). Process events while waiting. \emph{Do not forget to call this function several times a second in your code.} \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-waitKey}{waitKey(delay)}} & Wait for a key press during the specified time interval (or forever). Process events while waiting. \emph{Do not forget to call this function several times a second in your code.} \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-createTrackbar}{createTrackbar(...)}} & Add trackbar (slider) to the specified window \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-createTrackbar}{createTrackbar(...)}} & Add trackbar (slider) to the specified window \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/user_interface.html\#cv-setmousecallback}{setMouseCallback(...)}} & \ \ Set the callback on mouse clicks and movements in the specified window \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/highgui_user_interface.html\#cv-setmousecallback}{setMouseCallback(...)}} & \ \ Set the callback on mouse clicks and movements in the specified window \\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/camshiftdemo.c}{camshiftdemo.c}} and other \href{https://code.ros.org/svn/opencv/trunk/opencv/samples/}{OpenCV samples} on how to use the GUI functions.
|
||||
See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/camshiftdemo.cpp}{camshiftdemo.cpp}} and other \href{https://code.ros.org/svn/opencv/trunk/opencv/samples/}{OpenCV samples} on how to use the GUI functions.
|
||||
|
||||
\section{Camera Calibration, Pose Estimation and Depth Estimation}
|
||||
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-calibratecamera}{calibrateCamera()}} & Calibrate camera from several views of a calibration pattern. \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-calibratecamera}{calibrateCamera()}} & Calibrate camera from several views of a calibration pattern. \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-findchessboardcorners}{findChessboardCorners()}} & \ \ \ \ \ \ Find feature points on the checkerboard calibration pattern. \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-findchessboardcorners}{findChessboardCorners()}} & \ \ \ \ \ \ Find feature points on the checkerboard calibration pattern. \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-solvepnp}{solvePnP()}} & Find the object pose from the known projections of its feature points. \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-solvepnp}{solvePnP()}} & Find the object pose from the known projections of its feature points. \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-stereocalibrate}{stereoCalibrate()}} & Calibrate stereo camera. \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-stereocalibrate}{stereoCalibrate()}} & Calibrate stereo camera. \\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-stereorectify}{stereoRectify()}} & Compute the rectification transforms for a calibrated stereo camera.\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-stereorectify}{stereoRectify()}} & Compute the rectification transforms for a calibrated stereo camera.\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-initundistortrectifymap}{initUndistortRectifyMap()}} & \ \ \ \ \ \ Compute rectification map (for \texttt{remap()}) for each stereo camera head.\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-initundistortrectifymap}{initUndistortRectifyMap()}} & \ \ \ \ \ \ Compute rectification map (for \texttt{remap()}) for each stereo camera head.\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-StereoBM}{StereoBM}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-StereoSGBM}{StereoSGBM}} & The stereo correspondence engines to be run on rectified stereo pairs.\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-StereoBM}{StereoBM}}, \texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-StereoSGBM}{StereoSGBM}} & The stereo correspondence engines to be run on rectified stereo pairs.\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-reprojectimageto3d}{reprojectImageTo3D()}} & Convert disparity map to 3D point cloud.\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-reprojectimageto3d}{reprojectImageTo3D()}} & Convert disparity map to 3D point cloud.\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html\#cv-findhomography}{findHomography()}} & Find best-fit perspective transformation between two 2D point sets. \\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html\#cv-findhomography}{findHomography()}} & Find best-fit perspective transformation between two 2D point sets. \\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
To calibrate a camera, you can use \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/calibration.cpp}{calibration.cpp}} or
|
||||
\texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stereo\_calib.cpp}{stereo\_calib.cpp}} samples.
|
||||
To calibrate a camera, you can use \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/calibration.cpp}{calibration.cpp}} or
|
||||
\texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/stereo\_calib.cpp}{stereo\_calib.cpp}} samples.
|
||||
To get the disparity maps and the point clouds, use
|
||||
\texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stereo\_match.cpp}{stereo\_match.cpp}} sample.
|
||||
\texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/stereo\_match.cpp}{stereo\_match.cpp}} sample.
|
||||
|
||||
\section{Object Detection}
|
||||
|
||||
\begin{tabular}{@{}p{\the\MyLen}%
|
||||
@{}p{\linewidth-\the\MyLen}@{}}
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/object_detection.html\#matchTemplate}{matchTemplate}} & Compute proximity map for given template.\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/objdetect__object_detection.html\#matchTemplate}{matchTemplate}} & Compute proximity map for given template.\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/object_detection.html\#CascadeClassifier}{CascadeClassifier}} & Viola's Cascade of Boosted classifiers using Haar or LBP features. Suits for detecting faces, facial features and some other objects without diverse textures. See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/facedetect.cpp}{facedetect.cpp}}\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/objdetect__object_detection.html\#CascadeClassifier}{CascadeClassifier}} & Viola's Cascade of Boosted classifiers using Haar or LBP features. Suits for detecting faces, facial features and some other objects without diverse textures. See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/facedetect.cpp}{facedetect.cpp}}\\
|
||||
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/object_detection.html\#HOGDescriptor}{HOGDescriptor}} & N. Dalal's object detector using Histogram-of-Oriented-Gradients (HOG) features. Suits for detecting people, cars and other objects with well-defined silhouettes. See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/c/peopledetect.cpp}{peopledetect.cpp}}\\
|
||||
\texttt{\href{http://opencv.willowgarage.com/documentation/cpp/objdetect__object_detection.html\#HOGDescriptor}{HOGDescriptor}} & N. Dalal's object detector using Histogram-of-Oriented-Gradients (HOG) features. Suits for detecting people, cars and other objects with well-defined silhouettes. See \texttt{\href{https://code.ros.org/svn/opencv/trunk/opencv/samples/cpp/peopledetect.cpp}{peopledetect.cpp}}\\
|
||||
|
||||
\end{tabular}
|
||||
|
||||
|
@ -48,8 +48,8 @@
|
||||
#define __OPENCV_VERSION_HPP__
|
||||
|
||||
#define CV_MAJOR_VERSION 2
|
||||
#define CV_MINOR_VERSION 1
|
||||
#define CV_SUBMINOR_VERSION 1
|
||||
#define CV_MINOR_VERSION 2
|
||||
#define CV_SUBMINOR_VERSION 0
|
||||
|
||||
#define CVAUX_STR_EXP(__A) #__A
|
||||
#define CVAUX_STR(__A) CVAUX_STR_EXP(__A)
|
||||
|
Loading…
x
Reference in New Issue
Block a user