<li><a href="#cv_motion_motempl">Motion Templates</a>
<li><a href="#cv_motion_tracking">Object Tracking</a>
<li><a href="#cv_motion_optflow">Optical Flow</a>
+<li><a href="#cv_motion_feature">Feature Matching</a>
<li><a href="#cv_motion_estimators">Estimators</a>
</ul>
<li><a href="#cv_pattern">Pattern Recognition</a>
<dt>interpolation<dd>Interpolation method:<ul>
<li>CV_INTER_NN - nearest-neighbor interpolation,
<li>CV_INTER_LINEAR - bilinear interpolation (used by default)
- <li>CV_INTER_AREA - resampling using pixel area relation. It is preferred method for image
+ <li>CV_INTER_AREA - resampling using pixel area relation. It is the preferred method for image
decimation that gives moire-free results.
In case of zooming it is similar to <code>CV_INTER_NN</code> method.
<li>CV_INTER_CUBIC - bicubic interpolation.
<pre>
void cvSmooth( const CvArr* src, CvArr* dst,
int smoothtype=CV_GAUSSIAN,
- int param1=3, int param2=0, double param3=0, double param4=0 );
+ int size1=3, int size2=0, double sigma1=0, double sigma2=0 );
</pre><p><dl>
<dt>src<dd>The source image.
<dt>dst<dd>The destination image.
<dt>smoothtype<dd>Type of the smoothing operation:<ul>
<li>CV_BLUR_NO_SCALE (simple blur with no scaling) -
for each pixel the result is a sum of pixels values in
- <code>param1</code>×<code>param2</code> neighborhood of the pixel.
+ <code>size1</code>×<code>size2</code> neighborhood of the pixel.
If the neighborhood size varies from pixel to pixel, compute the sums
using integral image (<a href="#decl_cvIntegral">cvIntegral</a>).
-<li>CV_BLUR (simple blur) - for each pixel the result is a mean of pixel values
- <code>param1</code>×<code>param2</code> neighborhood of the pixel.
+<li>CV_BLUR (simple blur) - for each pixel the result is the average value (brightness/color)
+ of <code>size1</code>×<code>size2</code> neighborhood of the pixel.
<li>CV_GAUSSIAN (Gaussian blur) - the image is smoothed using the Gaussian kernel
- of size <code>param1</code>×<code>param2</code>.
- <code>param3</code> and <code>param4</code> may optionally be
+ of aperture size <code>size1</code>×<code>size2</code>.
+ <code>sigma1</code> and <code>sigma2</code> may optionally be
used to specify shape of the kernel.
<li>CV_MEDIAN (median blur) - the image is smoothed using medial filter
- of size <code>param1</code>×<code>param1</code>.
+ of size <code>size1</code>×<code>size1</code> (i.e. only square aperture can be used).
That is, for each pixel the result is the median computed
- over <code>param1</code>×<code>param1</code> neighborhood.
+ over <code>size1</code>×<code>size1</code> neighborhood.
<li>CV_BILATERAL (bilateral filter) -
the image is smoothed using a bilateral 3x3 filter
- with color sigma=<code>param1</code> and
- space sigma=<code>param2</code>.
+ with color sigma=<code>sigma1</code> and
+ spatial sigma=<code>sigma2</code>. If <code>size1!=0</code>, then
+ a circular kernel with diameter <code>size1</code> is used;
+ otherwise the diameter of the kernel is computed from <code>sigma2</code>.
Information about bilateral filtering
can be found at <a href="http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html">
http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html</a>
</ul>
-<dt>param1<dd>The first parameter of smoothing operation. It should be odd (1, 3, 5, ...),
- so that a pixel neighborhood used for smoothing operation is symmetrical
- relative to the pixel.
-<dt>param2<dd>The second parameter of smoothing operation. In case of simple scaled/non-scaled and
- Gaussian blur if <code>param2</code> is zero, it is set to <code>param1</code>.
- When not 0, it should be odd too.
-<dt>param3<dd>In case of Gaussian kernel this parameter may specify Gaussian sigma (standard deviation).
+<dt>size1<dd>The first parameter of smoothing operation. It should be odd (1, 3, 5, ...),
+ so that a pixel neighborhood used for smoothing operation is symmetrical
+ relative to the pixel.
+<dt>size2<dd>The second parameter of smoothing operation. In case of simple scaled/non-scaled and
+ Gaussian blur if <code>size2</code> is zero, it is set to <code>size1</code>.
+ When not 0, it should be odd too.
+<dt>sigma1<dd><p>In case of Gaussian kernel this parameter may specify Gaussian sigma (standard deviation).
If it is zero, it is calculated from the kernel size:<br>
<pre>
sigma = (n/2 - 1)*0.3 + 0.8, where n=param1 for horizontal kernel,
</pre>
With the standard sigma for small kernels (3×3 to 7×7) the performance is better.
If <code>param3</code> is not zero, while <code>param1</code> and <code>param2</code>
- are zeros, the kernel size is calculated from the sigma (to provide accurate enough operation).
-<dt>param4<dd>In case of non-square Gaussian kernel the parameter may be used to specify a different
- (from <code>param3</code>) sigma in the vertical direction.
+ are zeros, the kernel size is calculated from the sigma (to provide accurate enough operation).</p>
+
+ <p>In case of Bilateral filter the parameter specifies color sigma; the larger the value,
+ the stronger the pasterization effect of the filter is.</p>
+<dt>sigma2<dd><p>In case of non-square Gaussian kernel the parameter may be used to specify a different
+ (from <code>param3</code>) sigma in the vertical direction.</p>
+
+ <p>In case of Bilateral filter the parameter specifies spatial sigma; the larger the value,
+ the stronger the blurring effect of the filter. Note that with large <code>sigma2</code>
+ the processing speed decreases substantionally, so it is recommended to limit the kernel
+ size using the parameter <code>size1</code>.</p>
</dl><p>
-The function <code>cvSmooth</code> smoothes image using one of several methods. Every of the methods
-has some features and restrictions listed below</p>
-<p>Blur with no scaling works with single-channel images only and supports accumulation of
+The function <code>cvSmooth</code> smoothes image using one of the pre-defined methods. Every of the methods
+has some features and restrictions listed below:</p>
+<ul>
+<li>Blur with no scaling works with single-channel images only and supports accumulation of
8u to 16s format (similar to <a href="#decl_cvSobel">cvSobel</a> and <a href="#decl_cvLaplace">cvLaplace</a>)
-and accumulation of 32f to 32f format.</p><p>
-Simple blur and Gaussian blur support 1- or 3-channel, 8-bit, 16-bit and 32-bit floating point images.
-These two methods can process images in-place.</p>
-<p>Median and bilateral filters work with 1- or 3-channel 8-bit images and can not process images
-in-place.</p>
-
+and accumulation of 32f to 32f format.</li>
+<li>Simple blur and Gaussian blur support 1- or 3-channel, 8-bit, 16-bit and 32-bit floating-point images.
+These two methods can process images in-place.</li>
+<li>Median filter works with 1- or 3-channel 8-bit images and can not process images in-place.</li>
+<li>Bilateral filter works with 1- or 3-channel, 8-bit or 32-bit floating-point images and can not process images in-place.</li>
+</ul>
<hr><h3><a name="decl_cvFilter2D">Filter2D</a></h3>
<p class="Blurb">Applies linear filter to image</p>
for all the image pairs except the very first one <code>CV_LKFLOW_PYR_A_READY</code> is set).
</p>
+<hr><h2><a name="cv_motion_feature">Feature Matching</a></h2>
+
+<hr><h3><a name="decl_cvCreateFeatureTree">CreateFeatureTree</a></h3>
+<p class="Blurb">Constructs a tree of feature vectors</p>
+<pre>
+CvFeatureTree* cvCreateFeatureTree(CvMat* desc);
+</pre><p><dl>
+<dt>desc<dd>n x d matrix of n d-dimensional feature vectors (CV_32FC1 or CV_64FC1).
+</dl></p><p>
+The function <code>cvCreateFeatureTree</code> constructs a balanced kd-tree index of
+the given feature vectors. The lifetime of the desc matrix must exceed that
+of the returned tree. I.e., no copy is made of the vectors.
+</p>
+
+<hr><h3><a name="decl_cvReleaseFeatureTree">ReleaseFeatureTree</a></h3>
+<p class="Blurb">Destroys a tree of feature vectors</p>
+<pre>
+void cvReleaseFeatureTree(CvFeatureTree* tr);
+</pre><p><dl>
+<dt>tr<dd>pointer to tree being destroyed.
+</dl></p><p>
+The function <code>cvReleaseFeatureTree</code> deallocates the given kd-tree.
+</p>
+
+<hr><h3><a name="decl_cvFindFeatures">FindFeatures</a></h3>
+<p class="Blurb">Finds approximate k nearest neighbors of given vectors using best-bin-first search</p>
+<pre>
+void cvFindFeatures(CvFeatureTree* tr, CvMat* desc,
+ CvMat* results, CvMat* dist, int k=2, int emax=20);
+</pre><p><dl>
+<dt>tr<dd>pointer to kd-tree index of reference vectors.
+<dt>desc<dd>m x d matrix of (row-)vectors to find the nearest neighbors of.
+<dt>results<dd>m x k set of row indices of matching vectors (referring to matrix passed to cvCreateFeatureTree). Contains -1 in some columns if fewer than k neighbors found.
+<dt>dist<dd>m x k matrix of distances to k nearest neighbors.
+<dt>k<dd>The number of neighbors to find.
+<dt>emax<dd>The maximum number of leaves to visit.
+</dl></p><p>
+The function <code>cvFindFeatures</code> finds (with high probability) the <code>k</code> nearest
+neighbors in <code>tr</code> for each of the given (row-)vectors in <code>desc</code>, using
+best-bin-first searching (<a href="#paper_beis97">[Beis97]</a>).
+The complexity of the entire operation is at most <code>O(m*emax*log2(n))</code>,
+where <code>n</code> is the number of vectors in the tree.
+</p>
+
+<hr><h3><a name="decl_cvFindFeaturesBoxed">FindFeaturesBoxed</a></h3>
+<p class="Blurb">Orthogonal range search</p>
+<pre>
+int cvFindFeaturesBoxed(CvFeatureTree* tr,
+ CvMat* bounds_min, CvMat* bounds_max,
+ CvMat* results);
+</pre><p><dl>
+<dt>tr<dd>pointer to kd-tree index of reference vectors.
+<dt>bounds_min<dd>1 x d or d x 1 vector (CV_32FC1 or CV_64FC1) giving minimum value for each dimension.
+<dt>bounds_max<dd>1 x d or d x 1 vector (CV_32FC1 or CV_64FC1) giving maximum value for each dimension.
+<dt>results<dd>1 x m or m x 1 vector (CV_32SC1) to contain output row indices (referring to matrix passed to cvCreateFeatureTree).
+</dl></p><p>
+The function <code>cvFindFeaturesBoxed</code> performs orthogonal range seaching on the
+given kd-tree. That is, it returns the set of vectors <code>v</code> in <code>tr</code> that satisfy
+<code>bounds_min[i] <= v[i] <= bounds_max[i], 0 <= i < d</code>, where <code>d</code> is the dimension
+of vectors in the tree.
+The function returns the number of such vectors found.
+</p>
<hr><h2><a name="cv_motion_estimators">Estimators</a></h2>
</p>
+<hr><h3><a name="decl_cvCalibrationMatrixValues">CalibrationMatrixValues</a></h3>
+<p class="Blurb">Finds intrinsic and extrinsic camera parameters using calibration pattern</p>
+<pre>
+void cvCalibrationMatrixValues( const CvMat *calibMatr,
+ int imgWidth, int imgHeight,
+ double apertureWidth=0, double apertureHeight=0,
+ double *fovx=NULL, double *fovy=NULL,
+ double *focalLength=NULL,
+ CvPoint2D64f *principalPoint=NULL,
+ double *pixelAspectRatio=NULL );
+</pre><p><dl>
+<dt>calibMatr<dd>The matrix of intrinsic parameters, e.g. computed by <a href="#decl_cvCalibrateCamera2">cvCalibrateCamera2</a>
+<dt>imgWidth<dd>Image width in pixels
+<dt>imgHeight<dd>Image height in pixels
+<dt>apertureWidth<dd>Aperture width in realworld units (optional input parameter)
+<dt>apertureHeight<dd>Aperture width in realworld units (optional input parameter)
+<dt>fovx<dd>Field of view angle in x direction in degrees (optional output parameter)
+<dt>fovx<dd>Field of view angle in y direction in degrees (optional output parameter)
+<dt>focalLength<dd>Focal length in realworld units (optional output parameter)
+<dt>principalPoint<dd>The principal point in realworld units (optional output parameter)
+<dt>pixelAspectRatio<dd>The pixel aspect ratio ~ fy/fx (optional output parameter)
+</dl></p><p>
+The function <code>cvCalibrationMatrixValues</code> computes various useful camera (sensor/lens)
+characteristics using the computed camera calibration matrix, image frame resolution in pixels
+and the physical aperture size.</p>
+
+
<hr><h3><a name="decl_cvFindExtrinsicCameraParams2">FindExtrinsicCameraParams2</a></h3>
<p class="Blurb">Finds extrinsic camera parameters for particular view</p>
<pre>
<table width="100%">
<tr>
<td width="25%"><a href="#decl_cvCalcBackProject">CalcBackProject</a></td>
-<td width="25%"><a href="#decl_cvCalibrateCamera2">CalibrateCamera2</a></td>
-<td width="25%"><a href="#decl_cvConvexityDefects">ConvexityDefects</a></td>
+<td width="25%"><a href="#decl_cvCalcBackProjectPatch">CalcBackProjectPatch</a></td>
+<td width="25%"><a href="#decl_cvCalcEMD2">CalcEMD2</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcBackProjectPatch">CalcBackProjectPatch</a></td>
-<td width="25%"><a href="#decl_cvCamShift">CamShift</a></td>
-<td width="25%"><a href="#decl_cvCopyHist">CopyHist</a></td>
+<td width="25%"><a href="#decl_cvCalcGlobalOrientation">CalcGlobalOrientation</a></td>
+<td width="25%"><a href="#decl_cvCalcHist">CalcHist</a></td>
+<td width="25%"><a href="#decl_cvCalcImageHomography">CalcImageHomography</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcEMD2">CalcEMD2</a></td>
-<td width="25%"><a href="#decl_cvCanny">Canny</a></td>
-<td width="25%"><a href="#decl_cvCopyMakeBorder">CopyMakeBorder</a></td>
+<td width="25%"><a href="#decl_cvCalcMotionGradient">CalcMotionGradient</a></td>
+<td width="25%"><a href="#decl_cvCalcOpticalFlowBM">CalcOpticalFlowBM</a></td>
+<td width="25%"><a href="#decl_cvCalcOpticalFlowHS">CalcOpticalFlowHS</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcGlobalOrientation">CalcGlobalOrientation</a></td>
-<td width="25%"><a href="#decl_cvCheckContourConvexity">CheckContourConvexity</a></td>
-<td width="25%"><a href="#decl_cvCornerEigenValsAndVecs">CornerEigenValsAndVecs</a></td>
+<td width="25%"><a href="#decl_cvCalcOpticalFlowLK">CalcOpticalFlowLK</a></td>
+<td width="25%"><a href="#decl_cvCalcOpticalFlowPyrLK">CalcOpticalFlowPyrLK</a></td>
+<td width="25%"><a href="#decl_cvCalcPGH">CalcPGH</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcHist">CalcHist</a></td>
-<td width="25%"><a href="#decl_cvClearHist">ClearHist</a></td>
-<td width="25%"><a href="#decl_cvCornerHarris">CornerHarris</a></td>
+<td width="25%"><a href="#decl_cvCalcProbDensity">CalcProbDensity</a></td>
+<td width="25%"><a href="#decl_cvCalcSubdivVoronoi2D">CalcSubdivVoronoi2D</a></td>
+<td width="25%"><a href="#decl_cvCalibrateCamera2">CalibrateCamera2</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcImageHomography">CalcImageHomography</a></td>
-<td width="25%"><a href="#decl_cvClearSubdivVoronoi2D">ClearSubdivVoronoi2D</a></td>
-<td width="25%"><a href="#decl_cvCornerMinEigenVal">CornerMinEigenVal</a></td>
+<td width="25%"><a href="#decl_cvCamShift">CamShift</a></td>
+<td width="25%"><a href="#decl_cvCanny">Canny</a></td>
+<td width="25%"><a href="#decl_cvCheckContourConvexity">CheckContourConvexity</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcMotionGradient">CalcMotionGradient</a></td>
+<td width="25%"><a href="#decl_cvClearHist">ClearHist</a></td>
+<td width="25%"><a href="#decl_cvClearSubdivVoronoi2D">ClearSubdivVoronoi2D</a></td>
<td width="25%"><a href="#decl_cvCompareHist">CompareHist</a></td>
-<td width="25%"><a href="#decl_cvCreateConDensation">CreateConDensation</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcOpticalFlowBM">CalcOpticalFlowBM</a></td>
<td width="25%"><a href="#decl_cvComputeCorrespondEpilines">ComputeCorrespondEpilines</a></td>
-<td width="25%"><a href="#decl_cvCreateContourTree">CreateContourTree</a></td>
+<td width="25%"><a href="#decl_cvConDensInitSampleSet">ConDensInitSampleSet</a></td>
+<td width="25%"><a href="#decl_cvConDensUpdateByTime">ConDensUpdateByTime</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcOpticalFlowHS">CalcOpticalFlowHS</a></td>
-<td width="25%"><a href="#decl_cvConDensInitSampleSet">ConDensInitSampleSet</a></td>
-<td width="25%"><a href="#decl_cvCreateHist">CreateHist</a></td>
+<td width="25%"><a href="#decl_cvContourArea">ContourArea</a></td>
+<td width="25%"><a href="#decl_cvContourFromContourTree">ContourFromContourTree</a></td>
+<td width="25%"><a href="#decl_cvConvertPointsHomogenious">ConvertPointsHomogenious</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcOpticalFlowLK">CalcOpticalFlowLK</a></td>
-<td width="25%"><a href="#decl_cvConDensUpdateByTime">ConDensUpdateByTime</a></td>
-<td width="25%"><a href="#decl_cvCreateKalman">CreateKalman</a></td>
+<td width="25%"><a href="#decl_cvConvexHull2">ConvexHull2</a></td>
+<td width="25%"><a href="#decl_cvConvexityDefects">ConvexityDefects</a></td>
+<td width="25%"><a href="#decl_cvCopyHist">CopyHist</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcOpticalFlowPyrLK">CalcOpticalFlowPyrLK</a></td>
-<td width="25%"><a href="#decl_cvContourArea">ContourArea</a></td>
-<td width="25%"><a href="#decl_cvCreatePOSITObject">CreatePOSITObject</a></td>
+<td width="25%"><a href="#decl_cvCopyMakeBorder">CopyMakeBorder</a></td>
+<td width="25%"><a href="#decl_cvCornerEigenValsAndVecs">CornerEigenValsAndVecs</a></td>
+<td width="25%"><a href="#decl_cvCornerHarris">CornerHarris</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcPGH">CalcPGH</a></td>
-<td width="25%"><a href="#decl_cvContourFromContourTree">ContourFromContourTree</a></td>
-<td width="25%"><a href="#decl_cvCreateStructuringElementEx">CreateStructuringElementEx</a></td>
+<td width="25%"><a href="#decl_cvCornerMinEigenVal">CornerMinEigenVal</a></td>
+<td width="25%"><a href="#decl_cvCreateConDensation">CreateConDensation</a></td>
+<td width="25%"><a href="#decl_cvCreateContourTree">CreateContourTree</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcProbDensity">CalcProbDensity</a></td>
-<td width="25%"><a href="#decl_cvConvertPointsHomogenious">ConvertPointsHomogenious</a></td>
+<td width="25%"><a href="#decl_cvCreateFeatureTree">cvCreateFeatureTree</a></td>
+<td width="25%"><a href="#decl_cvCreateHist">CreateHist</a></td>
+<td width="25%"><a href="#decl_cvCreateKalman">CreateKalman</a></td>
+</tr>
+<tr>
+<td width="25%"><a href="#decl_cvCreatePOSITObject">CreatePOSITObject</a></td>
+<td width="25%"><a href="#decl_cvCreateStructuringElementEx">CreateStructuringElementEx</a></td>
<td width="25%"><a href="#decl_cvCreateSubdivDelaunay2D">CreateSubdivDelaunay2D</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvCalcSubdivVoronoi2D">CalcSubdivVoronoi2D</a></td>
-<td width="25%"><a href="#decl_cvConvexHull2">ConvexHull2</a></td>
<td width="25%"><a href="#decl_cvCvtColor">CvtColor</a></td>
</tr>
</table>
<table width="100%">
<tr>
<td width="25%"><a href="#decl_cvFilter2D">Filter2D</a></td>
-<td width="25%"><a href="#decl_cvFindExtrinsicCameraParams2">FindExtrinsicCameraParams2</a></td>
-<td width="25%"><a href="#decl_cvFindNextContour">FindNextContour</a></td>
+<td width="25%"><a href="#decl_cvFindChessboardCorners">FindChessboardCorners</a></td>
+<td width="25%"><a href="#decl_cvFindContours">FindContours</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvFindChessboardCorners">FindChessboardCorners</a></td>
-<td width="25%"><a href="#decl_cvFindFundamentalMat">FindFundamentalMat</a></td>
-<td width="25%"><a href="#decl_cvFitEllipse">FitEllipse</a></td>
+<td width="25%"><a href="#decl_cvFindCornerSubPix">FindCornerSubPix</a></td>
+<td width="25%"><a href="#decl_cvFindExtrinsicCameraParams2">FindExtrinsicCameraParams2</a></td>
+<td width="25%"><a href="#decl_cvFindFeatures">FindFeatures</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvFindContours">FindContours</a></td>
+<td width="25%"><a href="#decl_cvFindFeaturesBoxed">FindFeaturesBoxed</a></td>
+<td width="25%"><a href="#decl_cvFindFundamentalMat">FindFundamentalMat</a></td>
<td width="25%"><a href="#decl_cvFindHomography">FindHomography</a></td>
-<td width="25%"><a href="#decl_cvFitLine2D">FitLine2D</a></td>
</tr>
<tr>
-<td width="25%"><a href="#decl_cvFindCornerSubPix">FindCornerSubPix</a></td>
<td width="25%"><a href="#decl_cvFindNearestPoint2D">FindNearestPoint2D</a></td>
+<td width="25%"><a href="#decl_cvFindNextContour">FindNextContour</a></td>
+<td width="25%"><a href="#decl_cvFitEllipse">FitEllipse</a></td>
+</tr>
+<tr>
+<td width="25%"><a href="#decl_cvFitLine2D">FitLine2D</a></td>
<td width="25%"><a href="#decl_cvFloodFill">FloodFill</a></td>
</tr>
</table>
<td width="25%"><a href="#decl_cvRodrigues2">Rodrigues2</a></td>
</tr>
<tr>
+<td width="25%"><a href="#decl_cvReleaseFeatureTree">ReleaseFeatureTree</a></td>
<td width="25%"><a href="#decl_cvReleaseHaarClassifierCascade">ReleaseHaarClassifierCascade</a></td>
<td width="25%"><a href="#decl_cvReleaseStructuringElement">ReleaseStructuringElement</a></td>
-<td width="25%"><a href="#decl_cvRunHaarClassifierCascade">RunHaarClassifierCascade</a></td>
</tr>
<tr>
+<td width="25%"><a href="#decl_cvRunHaarClassifierCascade">RunHaarClassifierCascade</a></td>
<td width="25%"><a href="#decl_cvReleaseHist">ReleaseHist</a></td>
<td width="25%"><a href="#decl_cvRemap">Remap</a></td>
+</tr>
+<tr>
<td width="25%"><a href="#decl_cvRunningAvg">RunningAvg</a></td>
</tr>
</table>
as a starting point.
</p>
<ol>
+
+
+<li><a name="paper_beis97"><b>[Beis97]</b>
+J.S. Beis and D.G. Lowe, "Shape indexing using approximate nearest-neighbor search in highdimensional spaces".
+In Proc. IEEE Conf. Comp. Vision Patt. Recog., pages 1000--1006, 1997.
+</a>
+
<li><a name="paper_borgefors86"><b>[Borgefors86]</b>
Gunilla Borgefors, "Distance Transformations in Digital Images". Computer Vision, Graphics and Image Processing 34, 344-371 (1986).
</a>