From 0a2baa6c92b0d6f2ec24074fcc366180b103d1b6 Mon Sep 17 00:00:00 2001 From: innotex Date: Sun, 5 Oct 2025 17:49:52 +0200 Subject: [PATCH] ajouts des masques IDCARD, NumberIDCARD, NAMESMASK --- CMakeLists.txt | 7 ++++++- Items.cpp | 39 +++++++++++++++++++++++++++++++++++++++ Items.h | 12 ++++++++++++ Objects.cpp | 34 ++++++++++++++++++++++++++++++++++ Objects.h | 40 ++++++++++++++++++++++++++++++++++++++++ main.cpp | 11 +++++++---- 6 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 Items.cpp create mode 100644 Items.h create mode 100644 Objects.cpp create mode 100644 Objects.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b12f2c0..dabd178 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,12 @@ pkg_check_modules(OpenCV REQUIRED opencv4) include_directories(${OpenCV_INCLUDE_DIRS}) # Création de l'exécutable -add_executable(IDMASK main.cpp) +add_executable(IDMASK main.cpp + Objects.cpp + Objects.h + Items.cpp + Items.h +) # Lier les bibliothèques OpenCV à ton projet target_link_libraries(IDMASK ${OpenCV_LIBRARIES}) diff --git a/Items.cpp b/Items.cpp new file mode 100644 index 0000000..7575c83 --- /dev/null +++ b/Items.cpp @@ -0,0 +1,39 @@ +// +// Created by yann on 05/10/2025. +// + +#include "Items.h" +#include "Objects.h" + + +int IDCARD(cv::Mat image ) { + cv::Point top_left(155, 240); // Par exemple (100, 100) + cv::Point bottom_right(410, 260); // Par exemple (300, 300) + Objects Ligne1(top_left, bottom_right); // Carré de (100,100) à (300,300) + Ligne1.draw(image); + + top_left = cv::Point(25, 270); // Par exemple (100, 100) + bottom_right = cv::Point(410, 285); // Par exemple (300, 300) + Objects Ligne2(top_left, bottom_right); // Carré de (100,100) à (300,300) + Ligne2.draw(image); + + return 0; +} + +int NumberIDCARD(cv::Mat image ) { + cv::Point top_left(200, 45); // Par exemple (100, 100) + cv::Point bottom_right(285, 55); // Par exemple (300, 300) + Objects NumberIDCARD(top_left, bottom_right); // Carré de (100,100) à (300,300) + NumberIDCARD.draw(image); + + return 0; +} + +int NamesMask(cv::Mat image ) { + cv::Point top_left(240, 96); // Par exemple (100, 100) + cv::Point bottom_right(340, 110); // Par exemple (300, 300) + Objects NamesMask(top_left, bottom_right); // Carré de (100,100) à (300,300) + NamesMask.draw(image); + + return 0; +} \ No newline at end of file diff --git a/Items.h b/Items.h new file mode 100644 index 0000000..8eda751 --- /dev/null +++ b/Items.h @@ -0,0 +1,12 @@ +// +// Created by yann on 05/10/2025. +// + +#ifndef IDMASK_ITEMS_H +#define IDMASK_ITEMS_H +#include + +int IDCARD(cv::Mat image ); +int NumberIDCARD(cv::Mat image ); +int NamesMask(cv::Mat image ); +#endif //IDMASK_ITEMS_H \ No newline at end of file diff --git a/Objects.cpp b/Objects.cpp new file mode 100644 index 0000000..25b341a --- /dev/null +++ b/Objects.cpp @@ -0,0 +1,34 @@ +// +// Created by yann on 05/10/2025. +// + +#include "Objects.h" + +// Constructeur avec trois paramètres (2 Points et une couleur) + +Objects::Objects(cv::Point top_left, cv::Point bottom_right, cv::Scalar color) + : top_left(top_left), bottom_right(bottom_right), color(color) {} + +// Méthode pour dessiner un carré noir sur l'image +void Objects::draw(cv::Mat &image) { + // Dessiner un rectangle noir (avec -1 pour remplir le carré) + cv::rectangle(image, top_left, bottom_right, cv::Scalar(0), -1); // -1 signifie remplir le rectangle +} + +// Getters pour les coordonnées du carré +cv::Point Objects::getTopLeft() const { + return top_left; +} + +cv::Point Objects::getBottomRight() const { + return bottom_right; +} + +// Setters pour les coordonnées du carré +void Objects::setTopLeft(cv::Point p) { + top_left = p; +} + +void Objects::setBottomRight(cv::Point p) { + bottom_right = p; +} diff --git a/Objects.h b/Objects.h new file mode 100644 index 0000000..8d9e8bd --- /dev/null +++ b/Objects.h @@ -0,0 +1,40 @@ +// +// Created by yann on 05/10/2025. +// + +#ifndef IDMASK_OBJECTS_H +#define IDMASK_OBJECTS_H + +#include + +// Déclaration de la classe Objects +class Objects { +private: + // Coordonnées du coin supérieur gauche et du coin inférieur droit + cv::Point top_left; + cv::Point bottom_right; + + // Optionnel : couleur de l'objet (par défaut noir) + cv::Scalar color; + +public: + // Constructeur avec coordonnées et couleur par défaut (noir) + Objects(cv::Point top_left, cv::Point bottom_right, cv::Scalar color = cv::Scalar(0, 0, 0)); + + // Méthode pour dessiner un carré (ou autre forme) sur l'image + void draw(cv::Mat &image); + + // Getters pour les coordonnées des coins + cv::Point getTopLeft() const; + cv::Point getBottomRight() const; + + // Setters pour les coordonnées des coins + void setTopLeft(cv::Point p); + void setBottomRight(cv::Point p); + + // Méthode pour changer la couleur de l'objet + void setColor(cv::Scalar new_color); + cv::Scalar getColor() const; +}; + +#endif //IDMASK_OBJECTS_H diff --git a/main.cpp b/main.cpp index 43000a9..54eaa97 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,7 @@ #include #include +#include "Objects.h" +#include "Items.h" int main() { // Désactiver Qt en utilisant GTK pour OpenCV (si OpenCV utilise Qt en arrière-plan) @@ -14,12 +16,12 @@ int main() { return -1; } - // Définir les coordonnées du carré (coin supérieur gauche et coin inférieur droit) - cv::Point top_left(25, 270); // Par exemple (100, 100) - cv::Point bottom_right(410, 285); // Par exemple (300, 300) + IDCARD(image ); + NumberIDCARD(image ); + NamesMask(image ); + //square1.draw(image); // Dessiner un carré noir sur l'image d'origine (en couleur) - cv::rectangle(image, top_left, bottom_right, cv::Scalar(0, 0, 0), -1); // -1 signifie que le carré sera rempli // Convertir l'image d'origine en niveaux de gris (noir et blanc) cv::Mat image_gray; @@ -33,3 +35,4 @@ int main() { return 0; } +