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;
 			}