Files
opencv_contrib/modules/cudastereo/src/cuda/stereosgm.hpp
T

62 lines
1.7 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.
//
// Author: The "adaskit Team" at Fixstars Corporation
#ifndef OPENCV_CUDASTEREO_SGM_HPP
#define OPENCV_CUDASTEREO_SGM_HPP
#include "opencv2/core/cuda.hpp"
namespace cv { namespace cuda { namespace device {
namespace stereosgm
{
namespace census_transform
{
CV_EXPORTS void censusTransform(const GpuMat& src, GpuMat& dest, cv::cuda::Stream& stream);
}
namespace path_aggregation
{
class PathAggregation
{
private:
static constexpr unsigned int MAX_NUM_PATHS = 8;
std::array<Stream, MAX_NUM_PATHS> streams;
std::array<Event, MAX_NUM_PATHS> events;
std::array<GpuMat, MAX_NUM_PATHS> subs;
public:
template <size_t MAX_DISPARITY>
void operator() (const GpuMat& left, const GpuMat& right, GpuMat& dest, int mode, int p1, int p2, int min_disp, Stream& stream);
};
}
namespace winner_takes_all
{
template <size_t MAX_DISPARITY>
void winnerTakesAll(const GpuMat& src, GpuMat& left, GpuMat& right, float uniqueness, bool subpixel, int mode, cv::cuda::Stream& stream);
}
namespace median_filter
{
void medianFilter(const GpuMat& src, GpuMat& dst, Stream& stream);
}
namespace check_consistency
{
void checkConsistency(GpuMat& left_disp, const GpuMat& right_disp, const GpuMat& src_left, bool subpixel, Stream& stream);
}
namespace correct_disparity_range
{
void correctDisparityRange(GpuMat& disp, bool subpixel, int min_disp, Stream& stream);
}
} // namespace stereosgm
}}} // namespace cv { namespace cuda { namespace device {
#endif /* OPENCV_CUDASTEREO_SGM_HPP */