Nous allons programmer à l’aide d’OpenCV et C++ sous VS Code. La configuration de VS Code et des librairies pour certains langages peut être compliqué. Nous verrons, dans ce tutoriel, comment configurer un ordinateur et VS Code pour pouvoir développer avec OpenCV et C++.
Prérequis
Installation de VS Code et configuration des extensions Code Runner et C/C++ Intellisense
Installation du compilateur GCC et OpenCV pré-compilé
Pour que la chaîne de compilation fonctionne, il faut choisir la version du compilateur (gcc ou autre) qui correspond à la version pré-compilé d’OpenCV
Version OpenCV précompilée pour Mingw64 : OpenCV-4.5.5-x64
Installez la version de GCC correspondante avec MSYS2
Version GCC pour Mingw64: mingw-w64-x86_64-gcc (à installer avec le terminal MSYS MINGW64)
Ouvrez le terminal MSYS MINGW64 et entrez la commande
pacman -S mingw-w64-x86_64-gcc

N.B.: il peut être difficile de maintenir différentes version de compilateur ou de logiciel pré-compilé. N’hésitez pas à supprimer ce qui ne vous semble pas nécessaire dans ce que vous installez.
Nous avons à présent le compilateur et OpenCV dans la version Mingw64.
Configurer les variables d’environnement
Pour que l’ordinateur sache où se trouve les différentes codes sources, exécutables et librairies, il faut ajouter les chemins d’accès à la variable d’environnement Path du système.
Pour le compilateur, on ajoute le chemin de l’exécutable g++.exe ( ex: C:\msys64\mingw64\bin )
Puis, on ajoute le chemin d’accès aux librairies pré-compilées d’OpenCV (ex: C:\opencv\x64\mingw\bin)

Vous pouvez ensuite redémarrer l’ordinateur pour prendre en compte la modification des variables d’environnement.
Compilation et test du projet OpenCV
A ce stade, vous êtes en mesure de compiler et lancer un code C++ qui utilise OpenCV à partir du terminal de VS Code (ou de n’importe quel terminal)
Prenons le code de base pour lire la caméra que nous enregistrons dans le fichier test_opencv.cpp
#include<opencv2/opencv.hpp> //OpenCV header to use VideoCapture class// #include<iostream> using namespace std; using namespace cv; int main() { Mat myImage;//Declaring a matrix to load the frames// namedWindow("CAM Player");//Declaring the video to show the video// VideoCapture cap(0);//Declaring an object to capture stream of frames from default camera// if (!cap.isOpened()){ //This section prompt an error message if no video stream is found// cout << "No video stream detected" << endl; system("pause"); return-1; } while (true){ //Taking an everlasting loop to show the video// cap >> myImage; if (myImage.empty()){ //Breaking the loop if no video frame is detected// break; } imshow("CAM Player", myImage);//Showing the video// char c = (char)waitKey(25);//Allowing 25 milliseconds frame processing time and initiating break condition// if (c == 27 || c == 'q'){ //If 'Esc' or 'q' is entered break the loop// break; } } cap.release();//Releasing the buffer memory// return 0; }
Pour compiler et lancer le code vous pouvez utiliser la commande suivante
g++ test_opencv.cpp -o test_opencv -IC:\opencv\include -LC:\opencv\x64\mingw\bin -llibopencv_calib3d455 -llibopencv_core455 -llibopencv_dnn455 -llibopencv_features2d455 -llibopencv_flann455 -llibopencv_highgui455 -llibopencv_imgcodecs455 -llibopencv_imgproc455 -llibopencv_ml455 -llibopencv_objdetect455 -llibopencv_photo455 -llibopencv_stitching455 -llibopencv_video455 -llibopencv_videoio455 && ./test_opencv.exe
Vous pouvez exécuter le code sans recompiler avec la commande
./test_opencv.exe
Pour la suite nous utilisons VS Code pour compiler et lancer le code.
Exécuter du code avec Code Runner sur VS Code
Pour modifier les commandes de lancement, aller dans la configuration de l’extension Code Runner, Chercher « Code Runner: Executor Maps » et modifier la ligne qui vous intéresse (ici, cpp). Nous allons rajouter toutes les librairies qui nous permettent de compiler un code C++ incluant OpenCV sur VS Code.
"cpp": "g++ --version && cd $dir && g++ -g $fileName -o $fileNameWithoutExt -I C:\\opencv\\include\\ -LC:\\opencv\\x64\\mingw\\bin -llibopencv_calib3d455 -llibopencv_core455 -llibopencv_dnn455 -llibopencv_features2d455 -llibopencv_flann455 -llibopencv_highgui455 -llibopencv_imgcodecs455 -llibopencv_imgproc455 -llibopencv_ml455 -llibopencv_objdetect455 -llibopencv_photo455 -llibopencv_stitching455 -llibopencv_video455 -llibopencv_videoio455 && $dir$fileNameWithoutExt ",

Vous pouvez à présent lancer le programme avec Code Runner sous VS Code
Exécuter du code avec Run and Debug sur VS Code
Sous VS Code, vous pouvez configurer la procédure run and debug qui vous permet de lancer et debugger les codes à l’aide de F5.
Pour cela, nous allons configurer une tâche de compilation dans le fichier tasks.json. Dans cette tâche, nous retrouvons le chemin vers le compilateur C++ ainsi que vers les librairies d’OpenCV.
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe build opencv", "command": "C:\\msys64\\mingw64\\bin\\g++.exe", "args": [ "-g", "${file}", "-o", "${workspaceFolder}\\${fileBasenameNoExtension}.exe", "-I", "C:\\opencv\\include", "-L", "C:\\opencv\\x64\\mingw\\bin", "-l", "libopencv_calib3d455", "-l", "libopencv_core455", "-l", "libopencv_dnn455", "-l", "libopencv_features2d455", "-l", "libopencv_flann455", "-l", "libopencv_highgui455", "-l", "libopencv_imgcodecs455", "-l", "libopencv_imgproc455", "-l", "libopencv_ml455", "-l", "libopencv_objdetect455", "-l", "libopencv_photo455", "-l", "libopencv_stitching455", "-l", "libopencv_video455", "-l", "libopencv_videoio455" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." }, ], "version": "2.0.0" }
Cette tâche peut être exécutée à l’aide du raccourci clavier CTRL+SHIFT+B
Nous allons ensuite préciser à VS Code comment lancer le code dans le fichier launch.json. Ce fichier va indiquer à VS code d’exécuter la commande ./${workspaceFolder}/${fileBasenameNoExtension}.exe dans notre cas, test_opencv.exe
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "console": "externalTerminal", "preLaunchTask": "C/C++: g++.exe build opencv" } ] }
Lorsque vous modifiez le fichier, vous devez le compiler de nouveau pour appliquer les modifications. Cette tâche est prise en compte dans launch.json avec l’option preLaunchTask dans laquelle on rappelle le label de la tâche de compilation « C/C++: g++.exe build opencv »
Vous pouvez à présent lancer un projet OpenCV en C++ à l’aide de la commande F5 ou du menu « Run and Debug » de VS Code.

Packages MSYS2
Plutôt que la version compilée d’OpenCV, vous pouvez installer le paquet MSYS2 correspondant
Choisir des paquets présents dans la même version sur MSYS2 , MinGw64
- Version GCC : mingw-w64-x86_64-gcc
- Version OpenCV : mingw-w64-x86_64-opencv
pacman -S mingw-w64-x86_64-opencv
Pour ma part, j’ai rencontrer des soucis de compatibilité avec Qt6. Si certains, on pu le faire fonctionner merci de me le faire savoir.