From 75def740e3936da3ad297f90a6212aaacb4b7688 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Sun, 24 May 2020 20:10:35 +0300 Subject: [PATCH] Iterate over many focal points --- lib/libstereo/src/algorithms/clustersf.cu | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/libstereo/src/algorithms/clustersf.cu b/lib/libstereo/src/algorithms/clustersf.cu index 0ab9900ef..f6c944548 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); -- GitLab