From d18621f6eb368c6ebead5915856f26d50e712a0c Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Wed, 3 Mar 2021 08:13:05 +0100 Subject: [PATCH] =?UTF-8?q?Possibilit=C3=A9=20de=20d=C3=A9sactiver=20openc?= =?UTF-8?q?v4=20avec=20cmake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../raspberry/superviseur-robot/CMakeLists.txt | 2 +- .../raspberry/superviseur-robot/lib/camera.cpp | 13 +++++++++---- software/raspberry/superviseur-robot/lib/img.cpp | 16 +++++++++++----- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/software/raspberry/superviseur-robot/CMakeLists.txt b/software/raspberry/superviseur-robot/CMakeLists.txt index 8c9390e..c92ecb2 100644 --- a/software/raspberry/superviseur-robot/CMakeLists.txt +++ b/software/raspberry/superviseur-robot/CMakeLists.txt @@ -27,7 +27,7 @@ add_library(lib ) target_include_directories(lib PUBLIC lib) target_link_libraries(lib base64) -target_compile_definitions(lib PUBLIC __FOR_PC__ __SIMULATION__ __WITH_ARUCO__) +target_compile_definitions(lib PUBLIC __FOR_PC__ __SIMULATION__ __WITH_ARUCO__ __WITH_OPENCV4__) # Compile main executable add_executable(main main.cpp tasks.cpp tasks.h) diff --git a/software/raspberry/superviseur-robot/lib/camera.cpp b/software/raspberry/superviseur-robot/lib/camera.cpp index 8f177b2..821a981 100644 --- a/software/raspberry/superviseur-robot/lib/camera.cpp +++ b/software/raspberry/superviseur-robot/lib/camera.cpp @@ -52,10 +52,15 @@ bool Camera::Open() { #ifdef __FOR_PC__ if (this->cap.open(0)) { - //this->cap.set(CAP_PROP_FORMAT, CV_8UC3); - this->cap.set(CAP_PROP_FRAME_WIDTH, width); - this->cap.set(CAP_PROP_FRAME_HEIGHT, height); - + #ifdef __WITH_OPENCV4__ + //this->cap.set(CAP_PROP_FORMAT, CV_8UC3); + this->cap.set(CAP_PROP_FRAME_WIDTH, width); + this->cap.set(CAP_PROP_FRAME_HEIGHT, height); + #else + //this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3); + this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width); + this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height); + #endif /* __WITH_OPENCV4__ */ status = true; } #else diff --git a/software/raspberry/superviseur-robot/lib/img.cpp b/software/raspberry/superviseur-robot/lib/img.cpp index 4c8e13b..fd6cf4a 100644 --- a/software/raspberry/superviseur-robot/lib/img.cpp +++ b/software/raspberry/superviseur-robot/lib/img.cpp @@ -239,11 +239,17 @@ Arena Img::SearchArena() { std::vector hierarchy; ImageMat imageTrt; - cv::cvtColor(this->img, imageTrt, cv::COLOR_RGB2GRAY); // conversion en niveau de gris - cv::threshold(imageTrt, imageTrt, 128, 255, cv::THRESH_BINARY); // Threshold les éléments les plus clair - cv::Canny(imageTrt, imageTrt, 100, 200, 3); // detection d'angle - - findContours(imageTrt, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE, cv::Point(0, 0)); + #ifdef __WITH_OPENCV4__ + cv::cvtColor(this->img, imageTrt, cv::COLOR_RGB2GRAY); // conversion en niveau de gris + cv::threshold(imageTrt, imageTrt, 128, 255, cv::THRESH_BINARY); // Threshold les éléments les plus clair + cv::Canny(imageTrt, imageTrt, 100, 200, 3); // detection d'angle + findContours(imageTrt, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE, cv::Point(0, 0)); + #else + cv::cvtColor(this->img, imageTrt, CV_RGB2GRAY); // conversion en niveau de gris + cv::threshold(imageTrt, imageTrt, 128, 255, CV_THRESH_BINARY); // Threshold les éléments les plus clair + cv::Canny(imageTrt, imageTrt, 100, 200, 3); // detection d'angle + findContours(imageTrt, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0)); + #endif for (unsigned int i = 0; i < contours.size(); i++) { approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true) * 0.1, true); if (approx.size() == 4 && fabs(cv::contourArea(contours[i])) > 100000) {