Как преобразовать этот C++ opencv-код. (этот код из демонстрации отслеживания camshift в opencv https://github.com/Itseez/opencv/blob/master/samples/cpp/camshiftdemo.cpp)
Mat roi(hue,selection), maskroi(mask,selection);
в код javacv?
Тот же конструктор доступен из Java: public Mat (Mat m, Rect roi)
Итак, мы можем в принципе сделать то же самое:
Mat roi = new Mat(hue, selection), maskroi = new Mat(mask, selection);
Новые javacpp-пресеты javacpp-presets-0.9 уже имеют всю реализацию версии javacv версии opencv. Проверьте, доступны ли функции, которые вам нужны. https://github.com/bytedeco/javacpp-presets/tree/master/opencv
Если нет, я думаю, вам нужно увидеть определение (внедрение) двух функций c++ roi() и maskroi() для преобразования кода самой строки в javacv-копию самостоятельно.
И google group of javacpp также является лучшим местом, чтобы спросить, связаны ли вы с hava javacpp вопросами. http://groups.google.com/group/javacpp-project
Заметка:
для параметра c++ выходного параметра (вызов по указателю или вызов по ссылке), вам нужно понять, что параметр функции java не имеет типа вывода, поэтому вам нужно использовать массив вместо этого в качестве обходного пути, например:
c++ код:
void detectBothEars(Mat input, Rect* left, Rect* right);
Счетчик javacv должен быть:
void detectBothEarsRect(Mat input, Rect[] left, Rect[] right);
И клиентский код:
Rect[] leftRect = new Rect[1];
Rect[] rightRect = new Rect[1];
detectBothEars(face, leftRect , rightRect);