diff --git a/vision/src/algorithms/opencv_bm.cpp b/vision/src/algorithms/opencv_bm.cpp
index acb9793e601f82edcfaac3e9e5b6088a49e25936..203ac37e221e5b086fcf32295dfbc9e09d1e1655 100644
--- a/vision/src/algorithms/opencv_bm.cpp
+++ b/vision/src/algorithms/opencv_bm.cpp
@@ -22,9 +22,12 @@ OpenCVBM::OpenCVBM(nlohmann::json &config) : Disparity(config) {
 void OpenCVBM::compute(const cv::Mat &l, const cv::Mat &r, cv::Mat &disp) {
 	Mat left_disp;
 	Mat right_disp;
-	left_matcher_-> compute(l, r,left_disp);
-    right_matcher_->compute(r,l, right_disp);
-    wls_filter_->filter(left_disp,l,disp,right_disp);
+    Mat lg, rg;
+	cv::cvtColor(l, lg, cv::COLOR_BGR2GRAY);
+	cv::cvtColor(r, rg, cv::COLOR_BGR2GRAY);
+	left_matcher_-> compute(lg, rg,left_disp);
+    right_matcher_->compute(rg, lg, right_disp);
+    wls_filter_->filter(left_disp, l, disp, right_disp);
 }
 
 
diff --git a/vision/src/middlebury.cpp b/vision/src/middlebury.cpp
index 9252a4374dfeaeb7efae1e1c87e26776c9f9d0e4..494e6a9ff6f0703750afdafece30f0d157e65667 100644
--- a/vision/src/middlebury.cpp
+++ b/vision/src/middlebury.cpp
@@ -244,9 +244,7 @@ void ftl::middlebury::test(nlohmann::json &config) {
 	
 	// Run algorithm
 	auto disparity = ftl::Disparity::create(config["disparity"]);
-	cvtColor(l,  l, cv::COLOR_BGR2GRAY);
-    cvtColor(r, r, cv::COLOR_BGR2GRAY);
-        
+    
     Mat disp;
     disparity->compute(l,r,disp);
 	disp.convertTo(disp, CV_32F);