JavaCV使用哪个Java API?org.bytedeco.opencv.opencv_core还是org.opencv.core?

angelcervera:

我正在用Java(实际上是Scala)玩OpenCV。我正在使用org.bytedeco包装器(opencpp和javacv),但是文档不是很好。

问题是,取决于示例,使用了两个不同的API:org.bytedeco.opencv.opencv_coreorg.opencv.core

org.bytedeco.opencv.opencv_core工作正常,但是org.opencv.core抛出java.lang.UnsatisfiedLinkError:

An exception or error caused a run to abort: no opencv_java410 in java.library.path 
java.lang.UnsatisfiedLinkError: no opencv_java410 in java.library.path

我完全迷路了:

  1. 为什么要使用两种不同的API?
  2. 使用哪一个?
  3. 为什么org.bytedeco.opencv.opencv_core工作org.opencv.core引发异常

提前致谢。

使用的库:“ org.bytedeco”%“ javacv-platform”%“ 1.5.1”导入所有平台的lib。

斯蒂芬·C:

我完全迷路了:

org.bytedeco.opencv.opencv_coreorg.opencv.core库是Java 库,允许被称为OpenCV的本地库。
Java库是从OpenCV库的C / C ++头文件生成的。例如,bytedeco.org网站表示其版本使用JavaCPP工具。

  1. 为什么要使用两种不同的API?

因为有两个小组决定这样做!显然,生成Java代码并不需要很多工作。

为什么两个小组决定做同一件事?通过。

使用哪一个?

提出建议的问题对于StackOverflow来说是不合时宜的,因此我不予赘述。

一个务实的答案是使用最适合您的解决方案,但您也可以尝试找出另一个解决方案。

您可能应该考虑要使用的OpenCV API的版本,以及是否可以从各自的供应商处获得该版本的桥库。

为什么org.opencv.coreorg.bytedeco.opencv.opencv_core工作时抛出异常

这两个版本的库都需要链接到OpenCV本机库。此链接org.opencv.core在您的执行平台上不起作用有两个可能的原因:

  1. 其中一个opencv库具有库的嵌入式副本,而另一个则没有。(查看相应的JAR文件中的内容,然后将它们与本问答中关于如何嵌入本机库的内容进行比较:如何在JAR内捆绑本机库和JNI库?

  2. 另外,两个JAR文件都不会嵌入本机库,但是您的执行已安装适当版本的库。失败的版本正在寻找名称为“ opencv_java410”的库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章