Structure du projet et organisation des fichiers
Le dépôt GMS-Feature-Matcher est strcuturé de manière à faciliter la compilation et l'intégration. Voici une description des répertoires clés :
- répertoire include/ : Contient les en-têtes nécessaires, notamment
gms_matcher.hqui définit les interfaces de l'algorithme GMS. - répertoire src/ : Abrite les fichiers source implémentant l'algorithme, avec
gms_matcher.cpppour la logique principale etmain.cppcomme point d'entrée. - répertoire test/ : Inclut des tests unitaires pour valider le fonctionnement, avec
test_gms.cpp.
Initialisation via le fichier principal
Le fichier d'entrée src/main.cpp configure et exécute l'algorithme. Exemple de code modifié :
#include <iostream>
#include "gms_matcher.h"
int main() {
// Instanciation de l'outil de correspondance
CorrespondanceGMS outilDetection;
// Chargement des paires d'images
outilDetection.chargerImages("chemin/vers/image_a.jpg", "chemin/vers/image_b.jpg");
// Exécution de l'algorithme GMS
outilDetection.executer();
// Affichage des correspondances trouvées
outilDetection.afficherResultats();
return 0;
}
Ce code initialice un objet CorrespondanceGMS, charge les images, exécute l'algorithme et affiche les correspondances. Les noms de méthodes ont été adaptés en français pour plus de clarté.
Configuration du build avec CMake
Le fichier CMakeLists.txt gère la compilation. Voici une version révisée avec des paramètres standardisés :
cmake_minimum_required(VERSION 3.5)
project(DetectionGMS)
set(CMAKE_CXX_STANDARD 14)
# Ajout des chemins d'en-têtes
include_directories(${CMAKE_SOURCE_DIR}/include)
# Définition des fichiers source
set(SOURCES_PRINCIPAUX
src/gms_matcher.cpp
src/main.cpp
)
# Définition des fichiers de test
set(FICHIERS_TEST
test/test_gms.cpp
)
# Création de l'exécutable principal
add_executable(detection_gms ${SOURCES_PRINCIPAUX})
# Création de l'exécutable de test et liaison des bibliothèques
add_executable(test_detection ${FICHIERS_TEST})
target_link_libraries(test_detection detection_gms)
Cette configuration utilise CMake 3.5 et le standard C++14, avec des noms de cibles modifiés pour éviter les conflits. Les tests sont liés à l'exécutable principal pour une validation intégrée.