45 lines
2.4 KiB
C++
45 lines
2.4 KiB
C++
// This file is part of OpenCV project.
|
|
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
|
// of this distribution and at http://opencv.org/license.html.
|
|
|
|
#ifndef _OPENCV_STEREO_DESCRIPTOR_HPP_
|
|
#define _OPENCV_STEREO_DESCRIPTOR_HPP_
|
|
|
|
namespace cv { namespace stereo {
|
|
|
|
// FIXIT deprecate and remove CV_ prefix
|
|
/// types of supported kernels
|
|
enum {
|
|
CV_DENSE_CENSUS, CV_SPARSE_CENSUS,
|
|
CV_CS_CENSUS, CV_MODIFIED_CS_CENSUS, CV_MODIFIED_CENSUS_TRANSFORM,
|
|
CV_MEAN_VARIATION, CV_STAR_KERNEL
|
|
};
|
|
|
|
/**
|
|
Two variations of census applied on input images
|
|
Implementation of a census transform which is taking into account just the some pixels from the census kernel thus allowing for larger block sizes
|
|
**/
|
|
CV_EXPORTS void censusTransform(const Mat &image1, const Mat &image2, int kernelSize, Mat &dist1, Mat &dist2, const int type);
|
|
/// single image census transform
|
|
CV_EXPORTS void censusTransform(const Mat &image1, int kernelSize, Mat &dist1, const int type);
|
|
/**
|
|
STANDARD_MCT - Modified census which is memorizing for each pixel 2 bits and includes a tolerance to the pixel comparison
|
|
MCT_MEAN_VARIATION - Implementation of a modified census transform which is also taking into account the variation to the mean of the window not just the center pixel
|
|
**/
|
|
CV_EXPORTS void modifiedCensusTransform(const Mat &img1, const Mat &img2, int kernelSize, Mat &dist1, Mat &dist2, const int type, int t = 0, const Mat &integralImage1 = Mat(), const Mat &integralImage2 = Mat());
|
|
///single version of modified census transform descriptor
|
|
CV_EXPORTS void modifiedCensusTransform(const Mat &img1, int kernelSize, Mat &dist, const int type, int t = 0, const Mat &integralImage = Mat());
|
|
/**The classical center symetric census
|
|
A modified version of cs census which is comparing a pixel with its correspondent after the center
|
|
**/
|
|
CV_EXPORTS void symetricCensusTransform(const Mat &img1, const Mat &img2, int kernelSize, Mat &dist1, Mat &dist2, const int type);
|
|
///single version of census transform
|
|
CV_EXPORTS void symetricCensusTransform(const Mat &img1, int kernelSize, Mat &dist1, const int type);
|
|
///in a 9x9 kernel only certain positions are choosen
|
|
CV_EXPORTS void starCensusTransform(const Mat &img1, const Mat &img2, int kernelSize, Mat &dist1, Mat &dist2);
|
|
///single image version of star kernel
|
|
CV_EXPORTS void starCensusTransform(const Mat &img1, int kernelSize, Mat &dist);
|
|
|
|
}} // namespace
|
|
#endif
|