我正在用Java(实际上是Scala)玩OpenCV。我正在使用org.bytedeco包装器(opencpp和javacv),但是文档不是很好。
问题是,取决于示例,使用了两个不同的API:org.bytedeco.opencv.opencv_core或org.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
我完全迷路了:
提前致谢。
使用的库:“ org.bytedeco”%“ javacv-platform”%“ 1.5.1”导入所有平台的lib。
我完全迷路了:
在org.bytedeco.opencv.opencv_core
和org.opencv.core
库是Java 桥库,允许被称为OpenCV的本地库。
Java库是从OpenCV库的C / C ++头文件生成的。例如,bytedeco.org网站表示其版本使用JavaCPP工具。
- 为什么要使用两种不同的API?
因为有两个小组决定这样做!显然,生成Java代码并不需要很多工作。
为什么两个小组决定做同一件事?通过。
使用哪一个?
提出建议的问题对于StackOverflow来说是不合时宜的,因此我不予赘述。
一个务实的答案是使用最适合您的解决方案,但您也可以尝试找出另一个解决方案。
您可能应该考虑要使用的OpenCV API的版本,以及是否可以从各自的供应商处获得该版本的桥库。
为什么
org.opencv.core
在org.bytedeco.opencv.opencv_core
工作时抛出异常?
这两个版本的库都需要链接到OpenCV本机库。此链接org.opencv.core
在您的执行平台上不起作用。有两个可能的原因:
其中一个opencv
库具有库的嵌入式副本,而另一个则没有。(查看相应的JAR文件中的内容,然后将它们与本问答中关于如何嵌入本机库的内容进行比较:如何在JAR内捆绑本机库和JNI库?)
另外,两个JAR文件都不会嵌入本机库,但是您的执行已安装了适当版本的库。失败的版本正在寻找名称为“ opencv_java410”的库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句