From bbe10444a1913bf3dd2fd97face93320a3c3b0b4 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Thu, 4 Apr 2019 09:42:55 +0300
Subject: [PATCH] Fix elas bug and try different parameters

---
 cv-node/src/algorithms/elas.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/cv-node/src/algorithms/elas.cpp b/cv-node/src/algorithms/elas.cpp
index c2cb3b6b6..990c25b5c 100644
--- a/cv-node/src/algorithms/elas.cpp
+++ b/cv-node/src/algorithms/elas.cpp
@@ -9,7 +9,16 @@ using cv::Mat;
 static ftl::Disparity::Register elass("elas", ELAS::create);
 
 ELAS::ELAS(nlohmann::json &config) : Disparity(config) {
+	// TODO(nick) See if these can improve the situation
 	param_.postprocess_only_left = true;
+	param_.disp_min = 0;
+	param_.disp_max = config["maximum"];
+	param_.add_corners = 0;
+	param_.gamma = 3;
+	param_.sradius = 2;
+	param_.match_texture = 1;
+	param_.ipol_gap_width = 3;
+	param_.support_threshold = 0.85;
 	elas_ = new Elas(param_);
 }
 
@@ -24,7 +33,7 @@ void ELAS::compute(const cv::Mat &l, const cv::Mat &r, cv::Mat &disp) {
 	disp = Mat(cv::Size(l.cols, l.rows), CV_32F);
 	Mat dispr(cv::Size(l.cols, l.rows), CV_32F);
 	
-	const int32_t dims[3] = {l.cols,l.rows,l.step/sizeof(float)};
+	const int32_t dims[3] = {l.cols,l.rows,lbw.step};
 	
 	if (disp.step/sizeof(float) != lbw.step) LOG(WARNING) << "Incorrect disparity step";
 
@@ -37,5 +46,3 @@ void ELAS::compute(const cv::Mat &l, const cv::Mat &r, cv::Mat &disp) {
 	//disp.convertTo(disp, CV_32F, 1.0f);
 }
 
-
-
-- 
GitLab