В настоящее время я работаю над своей диссертацией (MSc Computer Science), которая представляет собой проект дополненной реальности с использованием OpenCV C++, интегрированного с Unity3D (для части рендеринга). Чтобы интегрировать OpenCV с Unity3D, я экспортировал код OpenCV (C++) в качестве dll, а затем импортирую эту DLL в Unity3D для доступа к методам dll и т. Д. Кроме того, университет дал мне немного денег, чтобы купить OpenCV для Unity (это реализован в C# с использованием OpenCV для Java), и я использую его также в Unity3D. Проблема в том, что он не поддерживает средство выделения SURF, поэтому я не внедряю свой код на C++ прямо в C#, используя этот актив.Передача данных из dll Unity3D в C++ и обратно
Итак, я хочу передать кадр (Mat) из Unity3D (C#) в dll C++, затем выполнить некоторые вычисления и после этого вернуть некоторые объекты Mat, например, матрицу поворота, вектор трансляции и положение камеры. Самое главное, что я не знаю, как передать рамку Mat из Unity3D в dll C++.
Может ли кто-нибудь объяснить мне, как достичь этого, а также вы можете отправить образец кода?
EDIT: Актив Unity3D, который я использую, можно найти здесь: OpenCV for Unity3D
да я использую этот актив вы упомянули. Я отредактирую свой пост и включу его. Я думал, что мне не разрешено публиковать внешние ссылки. спасибо – user43053534
Печально то, что SIFT и SURF не реализованы в этом активе. Вот почему я реализовал свой код на C++, где доступны SIFT и SURF, а затем я импортирую dll в Unity3D – user43053534
Да, я могу интегрировать dll C++ с Unity, я могу назвать простые методы, такие как добавление двух чисел и возврат результат, но основной вопрос заключался в том, как передать изображение (тип Mat) из Unity в dll C++, тогда алгоритм выполнит некоторые вычисления и вернет их обратно в Unity. – user43053534