OpenCV für C++: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist OpenCV und wozu wird es benötigt?

\n\n

OpenCV (Open Source Computer Vision Library) ist eine plattformübergreifende Open-Source-Bibliothek für Aufgaben des maschinellen Sehens und des maschinellen Lernens. Sie bietet über 2500 optimierte Algorithmen, die nahezu alle Bereiche des maschinellen Sehens abdecken: von der einfachen Bildverarbeitung (Filterung, geometrische Transformationen) bis hin zu komplexen Aufgaben (Gesichtserkennung, Objektverfolgung, 3D-Rekonstruktion, Videoanalyse).

\n\n

Die Bibliothek ist in C++ und C geschrieben, was eine hohe Leistung gewährleistet, und verfügt über Anbindungen an Python, Java, MATLAB und andere Sprachen. In diesem Leitfaden konzentrieren wir uns auf die Verwendung von OpenCV in C++ – dies ist die optimale Wahl für Produktionssysteme, bei denen Geschwindigkeit und effiziente Speicherverwaltung entscheidend sind.

\n\n

Wozu wird OpenCV benötigt?

\n
    \n
  • Bildverarbeitung: Größenänderung, Drehung, Filterung, Kontrastverbesserung, Farbkorrektur.
  • \n
  • Videoanalyse: Lesen/Schreiben von Videos, Bewegungserkennung, Objektverfolgung.
  • \n
  • Objekterkennung: Gesichter, Autos, Text (OCR), Gesten.
  • \n
  • Kamerakalibrierung: Beseitigung von Verzerrungen, Stereosehen.
  • \n
  • Maschinelles Lernen: Integrierte Klassifikatoren (SVM, KNN, Decision Trees) und Integration mit DNN (Deep Neural Networks) für die Arbeit mit Modellen von TensorFlow, Caffe, PyTorch.
  • \n
\n\n

Installation von OpenCV für C++

\n\n

Im Gegensatz zu Python, wo ein einziger Befehl pip install opencv-python ausreicht, erfordert die Installation von OpenCV für C++ die Kompilierung oder die Verwendung vorgefertigter Binärpakete. Betrachten wir die wichtigsten Methoden.

\n\n

1. Installation über den Paketmanager (Linux/macOS)

\n

Ubuntu/Debian:

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

macOS (Homebrew):

\n
brew install opencv
\n\n

2. Installation über vcpkg (Windows, Linux, macOS)

\n

vcpkg ist ein plattformübergreifender Paketmanager von Microsoft. Installieren Sie zunächst vcpkg:

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

Installieren Sie dann OpenCV:

\n
./vcpkg install opencv4
\n

Binden Sie die Bibliothek nach der Installation in CMake ein:

\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. Kompilierung aus dem Quellcode (fortgeschrittene Stufe)

\n

Diese Methode bietet maximale Kontrolle über die enthaltenen Module und Optimierungen:

\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

Schnellstart: Bild laden und anzeigen

\n

Überprüfen wir, ob OpenCV korrekt installiert ist, indem wir ein einfaches Programm schreiben, das ein Bild lädt, es in Graustufen umwandelt und anzeigt.

\n\n
#include <opencv2/opencv.hpp>\n#include <iostream>\n\nint main() {\n    // Bild laden\n    cv::Mat img = cv::imread("example.jpg");\n    if (img.empty()) {\n        std::cerr << "Bild konnte nicht geladen werden!" << std::endl;\n        return -1;\n    }\n\n    // In Graustufen umwandeln\n    cv::Mat gray;\n    cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);\n\n    // Beide Bilder anzeigen\n    cv::imshow("Original", img);\n    cv::imshow("Graustufen", gray);\n\n    // Auf Tastendruck warten\n    cv::waitKey(0);\n    cv::destroyAllWindows();\n\n    return 0;\n}
                
    
    

Empfehlungen