diff --git a/lib/libstereo/src/algorithms/clustersf.cu b/lib/libstereo/src/algorithms/clustersf.cu index 0ab9900ef8759c99a0f96da6a9d5c8e0fc75f17a..f6c944548f769271492fb135419aea7bda708f5d 100644 --- a/lib/libstereo/src/algorithms/clustersf.cu +++ b/lib/libstereo/src/algorithms/clustersf.cu @@ -38,21 +38,26 @@ void StereoCSF::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disp mat2gray(l, impl_->l); mat2gray(r, impl_->r); - short2 focal_pt = {short(1000), short(800)}; + Array2D<float> disp_array(l.cols(), l.rows()); + disp_array.toGpuMat().setTo(cv::Scalar(0.0f)); - SalientGradient sgl = {focal_pt, 1000, impl_->l.data(), impl_->gl.data(), impl_->temp.data(), impl_->buckets_l.data(), impl_->l.width, impl_->l.height}; - parallel1DWarpSM(sgl, l.rows(), l.cols()); SalientGradientGrouped sgr = {impl_->r.data(), impl_->gr.data(), impl_->temp.data(), impl_->buckets_r.data(), impl_->r.width, impl_->r.height}; parallel1DWarpSM(sgr, r.rows(), r.cols()); - impl_->focal.toGpuMat().setTo(cv::Scalar(0)); + for (int fx = 200; fx < l.cols()-200; fx += 50) { + for (int fy = 200; fy < l.rows()-200; fy += 50) { + short2 focal_pt = {short(fx), short(fy)}; + SalientGradient sgl = {focal_pt, 1000, impl_->l.data(), impl_->gl.data(), impl_->temp.data(), impl_->buckets_l.data(), impl_->l.width, impl_->l.height}; + parallel1DWarpSM(sgl, l.rows(), l.cols()); + impl_->focal.toGpuMat().setTo(cv::Scalar(0)); - FocalCluster fc = {focal_pt, impl_->buckets_l.data(), impl_->buckets_r.data(), impl_->focal.data(), 1024}; - parallel1DWarp(fc, l.rows(), 1); + FocalCluster fc = {focal_pt, impl_->buckets_l.data(), impl_->buckets_r.data(), impl_->focal.data(), 1024}; + parallel1DWarp(fc, l.rows(), 1); - Array2D<float> disp_array(l.cols(), l.rows()); - FocalSelector fs = {focal_pt, impl_->buckets_l.data(), impl_->buckets_r.data(), impl_->focal.data(), disp_array.data(), 1024}; - parallel1DWarp(fs, l.rows(), 1); + FocalSelector fs = {focal_pt, impl_->buckets_l.data(), impl_->buckets_r.data(), impl_->focal.data(), disp_array.data(), 1024}; + parallel1DWarp(fs, l.rows(), 1); + } + } disp_array.toGpuMat().download(disparity);