opencv_core.Mat与opencv.core.Mat之间的区别以及如何相互转换?

时间:2018-12-28 01:36:00

标签: java opencv javacv

两者之间有什么区别?

org.bytedeco.javacpp.opencv_core.Mat

org.opencv.core.Mat

又如何将它们彼此转换?

我认为javacpp是opencv的包装,并且认为它们都是相同的。但不是。

1 个答案:

答案 0 :(得分:1)

用JavaCPP生成的包装器更加完整,如http://bytedeco.org/faq/所述:

  

它与OpenCV,TensorFlow等中的包装器有何不同?

     

JavaCPP旨在提供最佳性能和灵活性。它   尽力映射Java语言所能映射的尽可能多的C ++   句柄,为本机功能提供一定程度的可用性   是我们所知道的任何其他解决方案所无法比拟的。它也是   提供了一个共同的基础,一组基本类,以增加   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));