gpt4 book ai didi

java - 哪个 Java API 与 JavaCV 一起使用? org.bytedeco.opencv.opencv_core 还是 org.opencv.core?

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:24 24 4
gpt4 key购买 nike

我在 Java 中使用 OpenCV(实际上是在 Scala 中)。我正在使用 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.opencv.coreorg.bytedeco.opencv.opencv_core 正常工作时抛出异常?

提前致谢。

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

最佳答案

I'm completely lost:

org.bytedeco.opencv.opencv_coreorg.opencv.core 库是 Java bridge 库,允许 OpenCV native 库被召唤。
Java 库是从 OpenCV 库的 C/C++ 头文件生成的。例如,bytedeco.org他们的版本使用 JavaCPP 的网站工具。

  1. Why two different apis?

因为两个小组决定这样做!显然,生成 Java 代码的工作量并不大。

为什么两个小组决定做同样的事情?通过。

Which one is the one to use?

要求推荐的问题与 StackOverflow 无关,所以我不会给出。

实用的答案是使用适合您的那个,但您也可以尝试找出另一个不适合的。

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

Why org.opencv.core throws exception when org.bytedeco.opencv.opencv_core is working?

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

  1. 其中一个 opencv 库具有该库的嵌入式副本,而另一个则没有。 (查看各个 JAR 文件中的内容,并将它们与本问答中关于如何嵌入 native 库的内容进行比较:How to bundle a native library and a JNI library inside a JAR?)

  2. 或者,两个 JAR 文件都没有嵌入 native 库,但您的执行已经安装了一个适当版本的库。失败的版本正在寻找名为“opencv_java410”的库。

关于java - 哪个 Java API 与 JavaCV 一起使用? org.bytedeco.opencv.opencv_core 还是 org.opencv.core?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com