Vamos programar utilizando OpenCV e C++ no VS Code. A configuração do VS Code e das bibliotecas para determinadas linguagens pode ser complicada. Neste tutorial, veremos como configurar um computador e o VS Code para poder desenvolver com OpenCV e C++.
Pré-requisitos
Instalação do VS Code e configuração das extensões Code Runner e C\
Instalação do compilador GCC e OpenCV pré-compilados
Para que a cadeia de compilação funcione, é necessário escolher a versão do compilador (gcc ou outra) que corresponde à versão pré-compilada do OpenCV
Versão do OpenCV pré-compilada para Mingw64: OpenCV-4.5.5-x64
Instalar a versão correspondente do GCC com MSYS2
Versão do GCC para Mingw64: mingw-w64-x86_64-gcc‘>mingw-w64-x86_64-gcc (para ser instalado com o terminal MSYS MINGW64)
Abrir o terminal MSYS MINGW64 e introduzir o comando
pacman -S mingw-w64-x86_64-gcc

N.B.: pode ser difícil manter diferentes versões de compiladores ou software pré-compilado. Não hesite em remover qualquer coisa que não considere necessária do que está a instalar.
Agora temos o compilador e o OpenCV na versão Mingw64.
Configuração de variáveis de ambiente
Para garantir que o computador saiba onde estão localizados os vários códigos-fonte, executáveis e bibliotecas, os caminhos devem ser adicionados à variável de ambiente Path no sistema.
Para o compilador, adicione o caminho para o executável g++.exe ( ex: C:\msys64\mingw64\bin )
Em seguida, adicione o caminho para as bibliotecas pré-compiladas do OpenCV (por exemplo, C:\opencv\x64\mingw\bin).

Pode então reiniciar o computador para ter em conta a alteração das variáveis de ambiente.
Compilar e testar o projeto OpenCV
Nesta fase, pode compilar e executar código C++ que utiliza o OpenCV a partir do terminal VS Code (ou qualquer outro terminal).
Vamos pegar no código básico para ler a câmara e guardá-lo no ficheiro 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;
}
Para compilar e executar o código, pode utilizar o seguinte comando
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
É possível executar o código sem recompilar com o comando
./test_opencv.exe
Em seguida, usamos o VS Code para compilar e executar o código.
Executar código com o Code Runner no VS Code
Para modificar os comandos de lançamento, aceda à configuração da extensão Code Runner, procure “Code Runner: Executor Maps” e modifique a linha que lhe interessa (aqui, cpp). Vamos adicionar todas as bibliotecas que nos permitem compilar código C++, incluindo o OpenCV no VS Code.
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

Agora é possível executar o programa com o Code Runner no VS Code
Executar código com Executar e depurar no VS Code
Em VS Code, pode configurar o procedimento de execução e depuração, que lhe permite executar e depurar código utilizando a tecla F5.
Para fazer isso, configuraremos uma tarefa de compilação no arquivo tasks.json. Essa tarefa contém o caminho para o compilador C++ e as bibliotecas 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"
}
Esta tarefa pode ser executada utilizando o atalho de teclado CTRL+SHIFT+B
Em seguida, dizemos ao VS Code como iniciar o código no arquivo launch.json. Esse arquivo dirá ao VS Code para executar o comando ./${workspaceFolder}/${fileBasenameNoExtension}.exe i.e. 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"
}
]
}
Quando se modifica o ficheiro, é necessário compilá-lo novamente para aplicar as modificações. Essa tarefa é levada em consideração no launch.json com a opção preLaunchTask, que chama o rótulo da tarefa de compilação “C\”.
Pode agora iniciar um projeto OpenCV em C++ utilizando o comando F5 ou o menu “Executar e depurar” no VS Code.

Pacotes MSYS2
Em vez da versão compilada do OpenCV, pode instalar o pacote MSYS2 correspondente
Escolha pacotes da mesma versão em MSYS2 , MinGw64
- Versão do GCC: mingw-w64-x86_64-gcc
- Versão do OpenCV: mingw-w64-x86_64-opencv
pacman -S mingw-w64-x86_64-opencv
Pela minha parte, deparei-me com problemas de compatibilidade com o Qt6. Se alguém tiver conseguido pô-lo a funcionar, informe-me.