MATLAB OpenCV

Was MATLAB OpenCV?

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:

% After installing support package
>> mexOpenCV detectORBFeatures.cpp
% Then call this function in MATLAB just like any other MATLAB command
>> 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.

subsystem_slwrap_toGrayScale

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

Angeben von Dateispeicherorten für die OpenCV-Bibliothek.

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:


Beispiele und Erläuterungen


Software-Referenz


MATLAB OpenCV — Häufig gestellte Fragen

Ja, OpenCV lässt sich in MATLAB über das Computer Vision Toolbox-Interface für OpenCV integrieren, das es Ihnen ermöglicht, OpenCV-Funktionen und ganze C++-Projekte mithilfe von MEX nach MATLAB zu bringen.

Sie benötigen die Computer Vision Toolbox und das Support-Paket Computer Vision Toolbox-Interface für OpenCV, das innerhalb von MATLAB heruntergeladen werden kann.

Nach der Installation des Support-Pakets verwenden Sie den Befehl mexOpenCV, um MEX-Dateien aus OpenCV-C++-Code zu erstellen, und rufen dann die resultierenden Funktionen wie jeden anderen MATLAB-Befehl auf.

Ja, das Computer Vision Toolbox-Interface für OpenCV in Simulink ermöglicht es Ihnen, OpenCV-Code mithilfe der OpenCV Importer UI in Simulink-Blöcke zu importieren und C++-Code für Modelle zu erzeugen, die mit OpenCV integriert sind.

Sie können OpenCV-Code zusammen mit den MATLAB-Funktionen für Datenzugriff, Visualisierung und Tests nutzen; Entwürfe mit OpenCV-Code erkunden und debuggen; sowie Systementwürfe, die MATLAB-Code und OpenCV kombinieren, auf eingebettete Hardware bereitstellen.

Ja, die OpenCV-Schnittstelle stellt vorkompilierte OpenCV-Binärdateien zur Verfügung, sodass Sie OpenCV nicht selbst kompilieren und erstellen müssen.

Die Schnittstelle enthält Beispiele für gängige Workflows wie Merkmalserkennung und -extraktion, Bildverarbeitung und Bewegungsschätzung.

Ja, Sie können C++-Code für Simulink-Modelle generieren, die mit OpenCV-Code integriert sind.


Siehe auch: Objekterkennung, Bilderkennung, Objekterkennung, Stereosicht, Merkmalsextraktion, Punktwolke