Разница между opencv_core.Mat и opencv.core.Mat и как конвертировать друг в друга? - PullRequest
0 голосов
/ 28 декабря 2018

В чем разница между двумя?

org.bytedeco.javacpp.opencv_core.Mat

org.opencv.core.Mat

И как они могут бытьпреобразованы друг в друга?

Я думал, что javacpp - это обертка вокруг opencv, и думал, что они одинаковы.Но нет.

1 Ответ

0 голосов
/ 31 декабря 2018

Оболочки, сгенерированные с помощью JavaCPP, более полны, как объяснено в http://bytedeco.org/faq/:

Чем они отличаются от оберток в OpenCV, TensorFlow и т. Д.?

JavaCPP был разработан для максимальной производительности и гибкости.Он стремится отобразить столько C ++, сколько может разумно обрабатывать язык Java, предлагая уровень удобства использования нативной функциональности, не имеющий аналогов ни в одном из известных нам решений.Он также предоставляет общую основу, набор базовых классов, для повышения совместимости между различными нативными библиотеками на платформе Java.Кроме того, его интеграция со стандартными инструментами, такими как Maven, облегчает разработку и развертывание.

JavaCV объединяет оба API, поэтому мы можем без проблем использовать их вместе.Мы также можем легко конвертировать между ними с помощью OpenCVFrameConverter , например:

OpenCVFrameConverter.ToMat converter1 = new OpenCVFrameConverter.ToMat();
OpenCVFrameConverter.ToOrgOpenCvCoreMat converter2 = new OpenCVFrameConverter.ToOrgOpenCvCoreMat();
Mat mat = ...;
org.opencv.core.Mat cvmat = converter2.convert(converter1.convert(mat));
Mat mat2 = converter2.convert(converter1.convert(cvmat));
...