diff --git a/lib/libstereo/middlebury/main.cpp b/lib/libstereo/middlebury/main.cpp index 40cd2ec4ab92b134ac92dece58f75204d9f8fd48..2c05c3c72c288591f515f7c983306a2f386ecacc 100644 --- a/lib/libstereo/middlebury/main.cpp +++ b/lib/libstereo/middlebury/main.cpp @@ -90,6 +90,8 @@ static void run_hcensussgm(MiddleburyData &data, cv::Mat &disparity) { stereo.params.subpixel = 1; stereo.params.lr_consistency = true; stereo.params.debug = false; + stereo.params.alpha = 0.5f; + stereo.params.beta = 1.0f; stereo.compute(data.imL, data.imR, disparity); } @@ -104,6 +106,8 @@ static void run_hgcensussgm(MiddleburyData &data, cv::Mat &disparity) { stereo.params.lr_consistency = true; stereo.params.debug = false; stereo.params.pattern = CensusPattern::GENERALISED; + stereo.params.alpha = 0.5f; + stereo.params.beta = 1.0f; stereo.compute(data.imL, data.imR, disparity); } diff --git a/lib/libstereo/src/algorithms/hcensussgm.cu b/lib/libstereo/src/algorithms/hcensussgm.cu index e8c8b000b890a9256413436ca90b1cf7fc579676..420f22f534a1c856864efd273d399f136411ea17 100644 --- a/lib/libstereo/src/algorithms/hcensussgm.cu +++ b/lib/libstereo/src/algorithms/hcensussgm.cu @@ -97,16 +97,18 @@ void StereoHierCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::Output variance_mask(impl_->l.toGpuMat(), var_fine, params.var_window); cv::cuda::normalize(var_fine, var_fine, params.alpha, params.beta, cv::NORM_MINMAX, -1); - cv::cuda::GpuMat var_medium = impl_->var_medium.toGpuMat(); + cv::cuda::GpuMat var_medium; // = impl_->var_medium.toGpuMat(); variance_mask(medium_l.toGpuMat(), var_medium, params.var_window); cv::cuda::normalize(var_medium, var_medium, params.alpha, params.beta, cv::NORM_MINMAX, -1); + cv::cuda::resize(var_medium, impl_->var_medium.toGpuMat(), cv::Size(l.cols(), l.rows())); - cv::cuda::GpuMat var_coarse = impl_->var_coarse.toGpuMat(); + cv::cuda::GpuMat var_coarse; // = impl_->var_coarse.toGpuMat(); variance_mask(coarse_l.toGpuMat(), var_coarse, params.var_window); cv::cuda::normalize(var_coarse, var_coarse, params.alpha, params.beta, cv::NORM_MINMAX, -1); + cv::cuda::resize(var_coarse, impl_->var_coarse.toGpuMat(), cv::Size(l.cols(), l.rows())); cv::Mat tmp; - var_fine.download(tmp); + impl_->var_coarse.toGpuMat().download(tmp); cv::imshow("Var", tmp); // CT diff --git a/lib/libstereo/src/costs/dual.hpp b/lib/libstereo/src/costs/dual.hpp index cb4942005aaa900896c2f39c54105dd7608d078d..1e0a4774d5318a82742c5691d66aa10525025cae 100644 --- a/lib/libstereo/src/costs/dual.hpp +++ b/lib/libstereo/src/costs/dual.hpp @@ -55,7 +55,7 @@ namespace impl { float pw = 1.0f; #pragma unroll for (int n=0; n<N; ++n) { - float w = 1.0f-weights[n](y,x); + float w = weights[n](y,x); cost += pw*w*float(costs[n](y,x,d)); pw *= 1.0f-w; }