OpenCV para C++: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é OpenCV e para que serve?

\n\n

OpenCV (Open Source Computer Vision Library) é uma biblioteca multiplataforma de código aberto, destinada a tarefas de visão computacional e aprendizado de máquina. Ela fornece mais de 2500 algoritmos otimizados que cobrem praticamente todas as áreas da visão computacional: desde processamento simples de imagens (filtragem, transformações geométricas) até tarefas complexas (reconhecimento facial, rastreamento de objetos, reconstrução 3D, análise de vídeo).

\n\n

A biblioteca é escrita em C++ e C, o que garante alto desempenho, e possui interfaces para Python, Java, MATLAB e outras linguagens. Neste guia, focaremos no uso do OpenCV especificamente com C++ — esta é a escolha ideal para sistemas de produção onde a velocidade de processamento e o gerenciamento eficiente de memória são críticos.

\n\n

Para que serve o OpenCV?

\n
    \n
  • Processamento de imagens: redimensionamento, rotação, filtragem, melhoria de contraste, correção de cor.
  • \n
  • Análise de vídeo: leitura/gravação de vídeo, detecção de movimento, rastreamento de objetos.
  • \n
  • Reconhecimento de objetos: rostos, carros, texto (OCR), gestos.
  • \n
  • Calibração de câmeras: correção de distorções, visão estéreo.
  • \n
  • Aprendizado de máquina: classificadores integrados (SVM, KNN, Decision Trees) e integração com DNN (Deep Neural Networks) para trabalhar com modelos TensorFlow, Caffe, PyTorch.
  • \n
\n\n

Instalação do OpenCV para C++

\n\n

Ao contrário do Python, onde um único comando pip install opencv-python é suficiente, a instalação do OpenCV para C++ requer compilação ou o uso de pacotes binários prontos. Vamos considerar os principais métodos.

\n\n

1. Instalação via gerenciador de pacotes (Linux/macOS)

\n

Ubuntu/Debian:

\n
sudo apt update\nsudo apt install libopencv-dev
\n

macOS (Homebrew):

\n
brew install opencv
\n\n

2. Instalação via vcpkg (Windows, Linux, macOS)

\n

vcpkg é um gerenciador de pacotes multiplataforma da Microsoft. Primeiro, instale o vcpkg:

\n
git clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n./bootstrap-vcpkg.sh  # Linux/macOS\n.\\bootstrap-vcpkg.bat # Windows
\n

Em seguida, instale o OpenCV:

\n
./vcpkg install opencv4
\n

Após a instalação, conecte a biblioteca no CMake:

\n
cmake_minimum_required(VERSION 3.10)\nproject(MyOpenCVProject)\nfind_package(OpenCV REQUIRED)\nadd_executable(main main.cpp)\ntarget_link_libraries(main ${OpenCV_LIBS})
\n\n

3. Compilação a partir do código fonte (nível avançado)

\n

Este método oferece controle máximo sobre os módulos incluídos e otimizações:

\n
git clone https://github.com/opencv/opencv.git\ncd opencv\nmkdir build && cd build\ncmake -D CMAKE_BUILD_TYPE=RELEASE \\\n      -D CMAKE_INSTALL_PREFIX=/usr/local \\\n      -D WITH_TBB=ON \\\n      -D WITH_V4L=ON \\\n      -D WITH_QT=ON \\\n      -D WITH_OPENGL=ON ..\nmake -j$(nproc)\nsudo make install
\n\n

Início rápido: carregar e exibir uma imagem

\n

Vamos verificar se o OpenCV foi instalado corretamente escrevendo um programa simples que carrega uma imagem, a converte para tons de cinza e a exibe.

\n\n
#include <opencv2/opencv.hpp>\n#include <iostream>\n\nint main() {\n    // Carrega a imagem\n    cv::Mat img = cv::imread("example.jpg");\n    if (img.empty()) {\n        std::cerr << "Falha ao carregar a imagem!" << std::endl;\n        return -1;\n    }\n\n    // Converte para tons de cinza\n    cv::Mat gray;\n    cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);\n\n    // Exibe ambas as imagens\n    cv::imshow("Original", img);\n    cv::imshow("Gray", gray);\n\n    // Aguarda o pressionamento de uma tecla\n    cv::waitKey(0);\n    cv::destroyAllWindows();\n\n    return 0;\n}
                
    
    

Recommendations