OpenCV C++ : guide complet avec exemples et tutoriel
1. Qu'est-ce qu'OpenCV et pourquoi l'utiliser ?
OpenCV (Open Source Computer Vision Library) est une bibliothèque open source puissante dédiée à la vision par ordinateur et au traitement d'images. Écrite en C++ avec des interfaces pour Python, Java et d'autres langages, elle propose plus de 2500 algorithmes optimisés pour l'analyse, le filtrage, la transformation et la reconnaissance d'informations visuelles. OpenCV est largement utilisée en robotique, vidéosurveillance, imagerie médicale, réalité augmentée et véhicules autonomes.
Pourquoi l'utiliser ? Dans le monde actuel, d'énormes volumes de données se présentent sous forme d'images et de vidéos. Un traitement manuel est impossible. OpenCV automatise des tâches comme la détection de visages, le suivi d'objets, le calibrage de caméras, la construction de cartes de profondeur, la segmentation d'images, et même l'apprentissage de réseaux de neurones pour la reconnaissance de formes. La bibliothèque fournit des outils performants prêts à l'emploi, évitant au développeur de réimplémenter des algorithmes mathématiques complexes.
Pour le C++, OpenCV est la référence de l'industrie. Grâce à la gestion directe de la mémoire et à l'accès bas niveau aux pixels, la version C++ offre une vitesse d'exécution maximale, essentielle pour les applications temps réel (par exemple, le traitement vidéo à 60 FPS). La bibliothèque est activement développée par la communauté et des entreprises (Intel, Willow Garage, Itseez), et son architecture modulaire permet de n'inclure que les composants nécessaires, économisant ainsi les ressources.
2. Installation
L'installation d'OpenCV pour C++ nécessite la compilation du code source ou l'utilisation d'un gestionnaire de paquets. Voici les principales méthodes.
2.1. Installation via vcpkg (recommandé pour Windows)
# Installez vcpkg si ce n'est pas déjà fait
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
# Installez OpenCV avec les modules supplémentaires (contrib)
.\vcpkg install opencv4[contrib,nonfree]:x64-windows
# Intégration avec Visual Studio
.\vcpkg integrate install
2.2. Installation via apt (Linux / Ubuntu / Debian)
sudo apt update
sudo apt install libopencv-dev
2.3. Installation via brew (macOS)
brew install opencv
2.4. Compilation depuis les sources (flexibilité maximale)
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_OPENGL=ON ..
make -j$(nproc)
sudo make install
Après l'installation, n'oubliez pas de configurer les chemins d'accès aux fichiers d'en-tête et aux bibliothèques dans votre IDE (par exemple, Visual Studio, CLion, CMake). Exemple pour CMakeLists.txt :
cmake_minimum_required(VERSION 3.10)
project(MyOpenCVProject)
find_package(OpenCV REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main ${OpenCV_LIBS})
3. Démarrage rapide — exemple minimal fonctionnel
Le code suivant charge une image, la convertit en niveaux de gris et enregistre le résultat. C'est le classique "Hello, World!" de la vision par ordinateur.
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// Charge une image couleur
cv::Mat image = cv::imread("input.jpg");
if (image.empty()) {
std Aussi dans la bibliothèque
Travailler avec les archives ZIP en PHP : ZipArchive et bibliothèques de compression
Mise en cache en Kotlin : Redis, Caffeine et Ehcache — guide complet
Journalisation pour Swift (iOS/macOS) : meilleures solutions
node-schedule — planificateur de tâches pour TypeScript
Client Elasticsearch pour Rust : présentation de la bibliothèque elasticsearch-rs