Ich arbeite gerade an meiner Diplomarbeit (MSc Computer Science), die ein Augmented Reality Projekt mit OpenCV C++ in Unity3D integriert ist (für den Rendering-Teil). Um OpenCV mit Unity3D zu integrieren, habe ich den OpenCV (C++) Code als DLL exportiert und dann importiere ich diese DLL in Unity3D, um auf die Methoden der DLL zuzugreifen. Außerdem hat mir die Universität etwas Geld gegeben, um OpenCV für Unity zu kaufen ist in C# mit OpenCV für Java implementiert) und ich verwende es auch in Unity3D. Das Problem ist, dass es SURF Feature Extractor nicht unterstützt und deshalb implementiere ich meinen C++ Code nicht direkt in C# mit diesem Asset.Weitergabe von Daten von Unity3D an C++ dll und umgekehrt
Also ich möchte ein Frame (Mat) von Unity3D (C#) an die C++ - DLL übergeben, dann einige Berechnungen und danach einige Mat-Objekte, zum Beispiel die Rotationsmatrix, Übersetzungsvektor und die Kamera-Pose zurückgeben. Das Wichtigste ist, dass ich nicht weiß, wie man den Mat-Frame von Unity3D an die C++ - DLL übergibt.
Kann mir jemand erklären, wie man das erreicht und können Sie auch einen Beispielcode veröffentlichen?
EDIT: Der Unity3D Vermögenswert, kann ich bin mit hier: OpenCV for Unity3D
ja, ich bin mit diesen Vermögenswert Sie erwähnt. Ich werde meinen Beitrag bearbeiten und einfügen. Ich dachte, ich dürfe keine externen Links posten. Danke – user43053534
Das Traurige ist, dass SIFT und SURF nicht auf diesem Asset implementiert sind. Deshalb habe ich meinen Code in C++ implementiert, wo SIFT und SURF verfügbar sind, und dann importiere ich die DLL in Unity3D. – user43053534
Ja, ich bin in der Lage, die C++ DLL mit Unity zu integrieren, ich kann einfache Methoden wie das Hinzufügen von zwei Zahlen aufrufen Ergebnis, aber der Hauptpunkt der Frage war, wie ein Bild (Mat-Typ) von Unity an die C++ - DLL übergeben werden, dann wird der Algorithmus einige Berechnungen durchführen und sie zurück an Unity. – user43053534