From d895f90b08fe38497cd0a20dcba66aa1fb02b231 Mon Sep 17 00:00:00 2001 From: Thiago Santini Date: Tue, 11 Sep 2018 08:36:32 +0200 Subject: [PATCH] Reintroduces scaling to ElSe --- EyeRecToo/src/pupil-detection/ElSe.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/EyeRecToo/src/pupil-detection/ElSe.cpp b/EyeRecToo/src/pupil-detection/ElSe.cpp index b151cb7..31118bb 100644 --- a/EyeRecToo/src/pupil-detection/ElSe.cpp +++ b/EyeRecToo/src/pupil-detection/ElSe.cpp @@ -1103,11 +1103,17 @@ RotatedRect ElSe::run(const Mat& frame) RotatedRect ellipse; Point pos(0, 0); - if (frame.rows > IMG_SIZE || frame.cols > IMG_SIZE) + float rz_fakk = float(frame.cols) / 384.0; + minArea /= rz_fakk; + maxArea /= rz_fakk; + + cv::Mat pic = cv::Mat::zeros(frame.rows / rz_fakk, frame.cols / rz_fakk, CV_8UC1); + cv::resize(frame, pic, pic.size()); + + if (pic.rows > IMG_SIZE || pic.cols > IMG_SIZE) return ellipse; - Mat pic; - normalize(frame, pic, 0, 255, NORM_MINMAX, CV_8U); + normalize(pic, pic, 0, 255, NORM_MINMAX, CV_8U); double border = 0.0; // ER takes care of setting an ROI double mean_dist = 3; @@ -1140,12 +1146,16 @@ RotatedRect ElSe::run(const Mat& frame) ellipse = find_best_edge(&pic, &detected_edges, &magni, start_x, end_x, start_y, end_y, mean_dist, inner_color_range); if ((ellipse.center.x <= 0 && ellipse.center.y <= 0) || (ellipse.center.x >= pic.cols || ellipse.center.y >= pic.rows)) { - ellipse = blob_finder(&pic); ellipse.angle = 0; ellipse.size = Size(0, 0); } + ellipse.size.height = ellipse.size.height * rz_fakk; + ellipse.size.width = ellipse.size.width * rz_fakk; + ellipse.center.x = ellipse.center.x * rz_fakk; + ellipse.center.y = ellipse.center.y * rz_fakk; + return ellipse; } -- GitLab