两者之间有什么区别?
org.bytedeco.javacpp.opencv_core.Mat
org.opencv.core.Mat
又如何将它们彼此转换?
我认为javacpp是opencv的包装,并且认为它们都是相同的。但不是。
答案 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));