So verwenden Sie OpenCV mit MATLAB und Simulink

OpenCV lässt sich mit MATLAB® und Simulink® für die kollaborative Entwicklung, Simulation, Prüfung und Implementierung von Bildverarbeitungs- und Computer Vision-basierten Systemen integrieren. Über Schnittstellen, welche OpenCV C++ API verwenden, unterstützen MATLAB und Simulink die Integration mit OpenCV.

Durch die Integration von OpenCV mit MATLAB und Simulink ist Folgendes möglich:

  • Verwenden und erkunden aktueller Forschungsalgorithmen, unabhängig davon, ob sie in MATLAB oder Simulink oder mit OpenCV-Code implementiert sind
  • Nutzung des OpenCV-Codes mit Datenzugriff, Bilderfassung, Visualisierung, Systemsimulation und Testfunktionen in MATLAB und Simulink
  • Nutzung von MATLAB und Simulink, um Designs mit OpenCV-Code zu untersuchen, zu analysieren und zu debuggen
  • Einsatz in eingebetteten Hardwaresystemdesigns, die MATLAB-Code, Simulink-Modelle und OpenCV-Code zusammen verwenden

MATLAB-OpenCV-Schnittstelle

Über die OpenCV-Schnitstelle zu MATLAB lassen sich einzelne Funktionen sowie ganze OpenCV-basierte C++ Projekte mit MEX einfach in MATLAB einbringen. Für dieses Support-Paket brauchen Sie die Computer Vision Toolbox. Die OpenCV-Schnittstelle bietet:

  • Vorgefertigte OpenCV-Binärdateien, die das Kompilieren und Erstellen von OpenCV überflüssig machen
  • Build-Skript zum Erstellen von OpenCV-basierten MEX-Dateien
  • Konvertierungen von Datentypen zwischen MATLAB und OpenCV
  • Beispiele, die Ihnen den Einstieg in gängige Arbeitsabläufe wie Merkmalerkennung und -extraktion, Bildverarbeitung und Bewegungsschätzung erleichtern

Beginnen Sie mit diesem einfachen Beispiel einer Befehlszeile:

 % Nach Installation des Supportpakets
 >> mexOpenCV detectORBFeatures.cpp
 % rufen Sie diese Funktion in MATLAB auf, wie bei jedem anderen MATLAB-Befehl auch
 >> im = imread('cameraman.tif'); 
 >> Keypoints = detectORBFeatures(im);

Sehen Sie sich zunächst die Dokumentation Computer Vision Toolbox OpenCV-Schnittstelle in MATLAB an. Sie enthält Hinweise zum Download des Support-Pakets, erklärt Funktion und Verwendung der Syntax und bietet verschiedene Beispiele.

Simulink OpenCV-Schnittstelle

Über die Schnittstelle zwischen OpenCV und Simulink können Sie OpenCV-Code in Simulink importieren. Für dieses Support-Paket brauchen Sie die Computer Vision Toolbox. Mit der Simulink OpenCV-Schnittstelle können Sie:

  • Mit der OpenCV-Importer-UI den OpenCV-Code in einen Simulink-Block importieren
  • C++ Code für das mit OpenCV-Code integrierte Simulink-Modell generieren
  • auf Beispiele zugreifen, wie sich der OpenCV-Importer zur Gestaltung verschiedener visueller Beispiele verwenden lässt

Beginnen Sie mit diesem einfachen Beispiel, bei dem Videoinput in RGB mittels eines Simulink-Modells mit einer OpenCV-Funktion im Subsystem subsystem_slwrap_toGrayScale in Graustufen konvertiert wird.

Mit der Anwendung OpenCV-Importer können Sie eine OpenCV-Funktion importieren, welche die Konvertierung von RGB zu Graustufen durchführt, sowie eine Simulink-Bibliothek erstellen, die den entsprechenden Block für die Funktion enthält. Sie können diesen Block dann in Ihr Simulink-Modell integrieren.

Mit dem OpenCV-Importer erstellten Subsystem subsystem_slwrap_toGrayScale kann ein RGB-Eingangsbild in ein Graustufen-Ausgangsbild konvertiert werden.

Festlegen von Dateispeicherorten für die OpenCV-Bibliothek.

Lesen Sie zunächst die Dokumentation zur Computer Vision Toolbox OpenCV-Schnittstelle in Simulink. Sie enthält Hinweise zum Herunterladen des Supportpakets, erklärt Funktionen und Verwendung des OpenCV Importer-Tools und bietet verschiedene Beispiele.

Computer Vision mit MATLAB

MATLAB und Computer Vision Toolbox bieten Funktionen, die in OpenCV nicht verfügbar sind. Die Toolbox bietet Algorithmen zur Objekterkennung, Bilderkennung und 3D-Lidarverarbeitung. Interaktive Anwendungen wie die Bildkalibrierungs-App und die Bildbeschriftungs-App können bei der Entwicklung von Bildalgorithmen erheblich Zeit sparen.

MATLAB bietet neue Deep Learning-Funktionen für Computer Vision, einschließlich Zugriff auf die neuesten Deep Learning-Modelle und beschleunigtes Trainieren der Modelle mit mehreren GPUs, der Cloud oder Clustern. Mit dem GPU Coder™ können Sie Ihre Modelle in CUDA-Code konvertieren. Der generierte CUDA-Code führt Modelle bis zu 7x schneller aus als TensorFlow.

MATLAB aus C++ und Python-Anwendungen aufrufen

Interaktion mit MATLAB-Funktionen und Datentypen aus anderen Programmiersprachen über MATLAB Engine:

Siehe auch: Objekterkennung, Bilderkennung, Objekterkennung:, Stereo-Vision, Merkmalsextraktion, Punktwolke