Move shared interface to header file rather than repeating.
This commit is contained in:
@@ -48,6 +48,8 @@
|
|||||||
#include "opencv2/core/cuda/reduce.hpp"
|
#include "opencv2/core/cuda/reduce.hpp"
|
||||||
#include "opencv2/core/cuda/functional.hpp"
|
#include "opencv2/core/cuda/functional.hpp"
|
||||||
|
|
||||||
|
#include "cuda/stereocsbp.hpp"
|
||||||
|
|
||||||
namespace cv { namespace cuda { namespace device
|
namespace cv { namespace cuda { namespace device
|
||||||
{
|
{
|
||||||
namespace stereocsbp
|
namespace stereocsbp
|
||||||
|
|||||||
31
modules/cudastereo/src/cuda/stereocsbp.hpp
Normal file
31
modules/cudastereo/src/cuda/stereocsbp.hpp
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
namespace cv { namespace cuda { namespace device
|
||||||
|
{
|
||||||
|
namespace stereocsbp
|
||||||
|
{
|
||||||
|
void load_constants(int ndisp, float max_data_term, float data_weight, float max_disc_term, float disc_single_jump, int min_disp_th,
|
||||||
|
const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& temp);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void init_data_cost(int rows, int cols, T* disp_selected_pyr, T* data_cost_selected, size_t msg_step,
|
||||||
|
int h, int w, int level, int nr_plane, int ndisp, int channels, bool use_local_init_data_cost, cudaStream_t stream);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void compute_data_cost(const T* disp_selected_pyr, T* data_cost, size_t msg_step,
|
||||||
|
int rows, int cols, int h, int w, int h2, int level, int nr_plane, int channels, cudaStream_t stream);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void init_message(T* u_new, T* d_new, T* l_new, T* r_new,
|
||||||
|
const T* u_cur, const T* d_cur, const T* l_cur, const T* r_cur,
|
||||||
|
T* selected_disp_pyr_new, const T* selected_disp_pyr_cur,
|
||||||
|
T* data_cost_selected, const T* data_cost, size_t msg_step,
|
||||||
|
int h, int w, int nr_plane, int h2, int w2, int nr_plane2, cudaStream_t stream);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void calc_all_iterations(T* u, T* d, T* l, T* r, const T* data_cost_selected,
|
||||||
|
const T* selected_disp_pyr_cur, size_t msg_step, int h, int w, int nr_plane, int iters, cudaStream_t stream);
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void compute_disp(const T* u, const T* d, const T* l, const T* r, const T* data_cost_selected, const T* disp_selected, size_t msg_step,
|
||||||
|
const PtrStepSz<short>& disp, int nr_plane, cudaStream_t stream);
|
||||||
|
}
|
||||||
|
}}}
|
||||||
@@ -53,37 +53,7 @@ Ptr<cuda::StereoConstantSpaceBP> cv::cuda::createStereoConstantSpaceBP(int, int,
|
|||||||
|
|
||||||
#else /* !defined (HAVE_CUDA) */
|
#else /* !defined (HAVE_CUDA) */
|
||||||
|
|
||||||
namespace cv { namespace cuda { namespace device
|
#include "cuda/stereocsbp.hpp"
|
||||||
{
|
|
||||||
namespace stereocsbp
|
|
||||||
{
|
|
||||||
void load_constants(int ndisp, float max_data_term, float data_weight, float max_disc_term, float disc_single_jump, int min_disp_th,
|
|
||||||
const PtrStepSzb& left, const PtrStepSzb& right, const PtrStepSzb& temp);
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void init_data_cost(int rows, int cols, T* disp_selected_pyr, T* data_cost_selected, size_t msg_step,
|
|
||||||
int h, int w, int level, int nr_plane, int ndisp, int channels, bool use_local_init_data_cost, cudaStream_t stream);
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void compute_data_cost(const T* disp_selected_pyr, T* data_cost, size_t msg_step,
|
|
||||||
int rows, int cols, int h, int w, int h2, int level, int nr_plane, int channels, cudaStream_t stream);
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void init_message(T* u_new, T* d_new, T* l_new, T* r_new,
|
|
||||||
const T* u_cur, const T* d_cur, const T* l_cur, const T* r_cur,
|
|
||||||
T* selected_disp_pyr_new, const T* selected_disp_pyr_cur,
|
|
||||||
T* data_cost_selected, const T* data_cost, size_t msg_step,
|
|
||||||
int h, int w, int nr_plane, int h2, int w2, int nr_plane2, cudaStream_t stream);
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void calc_all_iterations(T* u, T* d, T* l, T* r, const T* data_cost_selected,
|
|
||||||
const T* selected_disp_pyr_cur, size_t msg_step, int h, int w, int nr_plane, int iters, cudaStream_t stream);
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void compute_disp(const T* u, const T* d, const T* l, const T* r, const T* data_cost_selected, const T* disp_selected, size_t msg_step,
|
|
||||||
const PtrStepSz<short>& disp, int nr_plane, cudaStream_t stream);
|
|
||||||
}
|
|
||||||
}}}
|
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user