From 5a088494676bb5a7f892c38d0dfbba97f22e4334 Mon Sep 17 00:00:00 2001 From: JCC Date: Fri, 17 Jun 2016 03:06:25 +0200 Subject: [PATCH] moved rgb2grey --- src/papillon.cpp | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/papillon.cpp b/src/papillon.cpp index 441cbf9..8ab0e9a 100644 --- a/src/papillon.cpp +++ b/src/papillon.cpp @@ -61,6 +61,10 @@ class Traite_image { cv::Mat next; resize(input, next, cv::Size(input.size().width/resize_f, input.size().height/resize_f)); cv::Mat output; + next.copyTo(output); + + cv::cvtColor(next, next, cv::COLOR_BGR2GRAY); + if (first) { for (int i = 0; i < NB_FRAME_DROP; ++i) { prevs.push_back(next.clone()); @@ -90,11 +94,7 @@ class Traite_image { prevs.insert(prevs.begin(), next.clone()); } - void stabiliseImg(cv::Mat prev, cv::Mat cur, cv::Mat &output){ - cv::Mat cur_grey, prev_grey; - cv::cvtColor(cur, cur_grey, cv::COLOR_BGR2GRAY); - cv::cvtColor(prev, prev_grey, cv::COLOR_BGR2GRAY); - + void stabiliseImg(cv::Mat prev_grey, cv::Mat cur_grey, cv::Mat &output){ // vector from prev to cur vector prev_corner, cur_corner; vector prev_corner2, cur_corner2; @@ -119,14 +119,10 @@ class Traite_image { } T.copyTo(last_T); - cv::warpAffine(cur, output, T, cur.size(),cv::INTER_CUBIC|cv::WARP_INVERSE_MAP); + cv::warpAffine(cur_grey, output, T, cur_grey.size(),cv::INTER_CUBIC|cv::WARP_INVERSE_MAP); } - void searchForMovement(cv::Mat prev, cv::Mat cur, cv::Mat &output, cv::Mat &out2){ - cv::Mat cur_grey, prev_grey; - cur.copyTo(output); - cv::cvtColor(prev, prev_grey, cv::COLOR_BGR2GRAY); - cv::cvtColor(cur, cur_grey, cv::COLOR_BGR2GRAY); + void searchForMovement(cv::Mat prev_grey, cv::Mat cur_grey, cv::Mat &output, cv::Mat &out2){ cv::GaussianBlur(prev_grey, prev_grey, cv::Size(BLUR_SIZE,BLUR_SIZE), 3.0); cv::GaussianBlur(cur_grey, cur_grey, cv::Size(BLUR_SIZE,BLUR_SIZE), 3.0); @@ -166,17 +162,17 @@ class Traite_image { } vector c_rects; // Connected rectangles - cleanBBoxes(nc_rects, cur.size(), c_rects); + cleanBBoxes(nc_rects, cur_grey.size(), c_rects); if (c_rects.size() > 0) { for (const auto& rect : c_rects) cv::rectangle(output, rect, cv::Scalar(0, 255, 0), 2); cv::Rect objBRect = c_rects.front(); papillon::BoundingBox bbox = papillon::BoundingBox(); - bbox.x = objBRect.x / (float)cur.size().width; - bbox.y = objBRect.y / (float)cur.size().height; - bbox.width = objBRect.width / (float)cur.size().width; - bbox.height = objBRect.height / (float)cur.size().height; + bbox.x = objBRect.x / (float)cur_grey.size().width; + bbox.y = objBRect.y / (float)cur_grey.size().height; + bbox.width = objBRect.width / (float)cur_grey.size().width; + bbox.height = objBRect.height / (float)cur_grey.size().height; pub_cmd.publish(bbox); } }