added methods estimateRecopmmendedParams for StereoBP and StereoCSBP

pull/13383/head
Andrey Morozov 15 years ago
parent 1febf345bf
commit 096080de70
  1. 4
      modules/gpu/include/opencv2/gpu/gpu.hpp
  2. 13
      modules/gpu/src/beliefpropagation_gpu.cpp
  3. 14
      modules/gpu/src/constantspacebp_gpu.cpp

@ -415,6 +415,8 @@ namespace cv
enum { DEFAULT_ITERS = 5 };
enum { DEFAULT_LEVELS = 5 };
static void estimateRecopmmendedParams( int width, int height, int & ndisp, int & iters, int & levels);
//! the default constructor
explicit StereoBeliefPropagation(int ndisp = DEFAULT_NDISP,
int iters = DEFAULT_ITERS,
@ -471,6 +473,8 @@ namespace cv
enum { DEFAULT_LEVELS = 4 };
enum { DEFAULT_NR_PLANE = 4 };
static void estimateRecopmmendedParams( int width, int height, int & ndisp, int & iters, int & levels, int & nr_plane);
//! the default constructor
explicit StereoConstantSpaceBP(int ndisp = DEFAULT_NDISP,
int iters = DEFAULT_ITERS,

@ -77,6 +77,19 @@ namespace
const float DEFAULT_DISC_SINGLE_JUMP = 1.0f;
}
void cv::gpu::StereoBeliefPropagation::estimateRecopmmendedParams( int width, int height, int & ndisp, int & iters, int & levels)
{
ndisp = width / 4;
if (ndisp & 1 != 0) ndisp++;
int mm =::max(width, height);
iters = mm / 100 + 2;
levels = (int)(log(mm) + 1) * 4 / 5;
if (levels == 0) levels++;
}
cv::gpu::StereoBeliefPropagation::StereoBeliefPropagation(int ndisp_, int iters_, int levels_, int msg_type_)
: ndisp(ndisp_), iters(iters_), levels(levels_),
max_data_term(DEFAULT_MAX_DATA_TERM), data_weight(DEFAULT_DATA_WEIGHT),

@ -105,6 +105,20 @@ namespace
const float DEFAULT_DISC_SINGLE_JUMP = 10.0f;
}
void cv::gpu::StereoConstantSpaceBP::estimateRecopmmendedParams( int width, int height, int & ndisp, int & iters, int & levels, int &nr_plane)
{
ndisp = (int) ((float) width / 3.14f);
if (ndisp & 1 != 0) ndisp++;
int mm = ::max(width, height);
iters = mm / 100 + ((mm > 1200)? - 4 : 4);
levels = (int)log(mm) * 2 / 3;
if (levels == 0) levels++;
nr_plane = (int) ((float) ndisp / pow(2.0, levels + 1));
}
cv::gpu::StereoConstantSpaceBP::StereoConstantSpaceBP(int ndisp_, int iters_, int levels_, int nr_plane_,
int msg_type_)

Loading…
Cancel
Save