哪个 Java API 与 JavaCV 一起使用? org.bytedeco.opencv.opencv_core 还是 org.opencv.core?
Which Java API to use with JavaCV? org.bytedeco.opencv.opencv_core or org.opencv.core?
我正在 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
我完全迷路了:
- 为什么有两个不同的 API?
- 用哪个好?
- 为什么 org.opencv.core 在 org.bytedeco.opencv.opencv_core 工作时抛出异常?
提前致谢。
使用的库:"org.bytedeco" % "javacv-platform" % "1.5.1" 为所有平台导入库。
I'm completely lost:
org.bytedeco.opencv.opencv_core
和org.opencv.core
库是Javabridge库,允许调用OpenCV原生库
Java 库是从 OpenCV 库的 C/C++ 头文件生成的。例如,bytedeco.org site that their version using the JavaCPP 工具。
- Why two different apis?
因为两个小组决定这样做!显然,生成 Java 代码的工作并不多。
为什么两个小组决定做同样的事情?通过.
Which one is the one to use?
要求推荐的问题对于 Whosebug 来说是题外话,所以我不会给出。
一个务实的答案是使用适合您的那个,但您也可以尝试找出另一个不起作用的答案。
您或许应该考虑您要使用的 OpenCV API 版本,以及该版本的桥接库是否可从各个供应商处获得。
Why org.opencv.core
throws exception when org.bytedeco.opencv.opencv_core
is working?
两个版本的库都需要 link 到 OpenCV 本机库。这 linking 不适用于您的执行平台上的 org.opencv.core
。这有几个可能的原因:
其中一个 opencv
库具有该库的嵌入式副本,而另一个则没有。 (查看各个 JAR 文件中的内容,并将它们与此问答中关于如何嵌入本机库的内容进行比较:How to bundle a native library and a JNI library inside a JAR?)
或者,两个 JAR 文件都没有嵌入本机库,但是您的执行已经安装了 适当的 版本的库。失败的版本正在寻找名称为“opencv_java410”的库。
我正在 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
我完全迷路了:
- 为什么有两个不同的 API?
- 用哪个好?
- 为什么 org.opencv.core 在 org.bytedeco.opencv.opencv_core 工作时抛出异常?
提前致谢。
使用的库:"org.bytedeco" % "javacv-platform" % "1.5.1" 为所有平台导入库。
I'm completely lost:
org.bytedeco.opencv.opencv_core
和org.opencv.core
库是Javabridge库,允许调用OpenCV原生库
Java 库是从 OpenCV 库的 C/C++ 头文件生成的。例如,bytedeco.org site that their version using the JavaCPP 工具。
- Why two different apis?
因为两个小组决定这样做!显然,生成 Java 代码的工作并不多。
为什么两个小组决定做同样的事情?通过.
Which one is the one to use?
要求推荐的问题对于 Whosebug 来说是题外话,所以我不会给出。
一个务实的答案是使用适合您的那个,但您也可以尝试找出另一个不起作用的答案。
您或许应该考虑您要使用的 OpenCV API 版本,以及该版本的桥接库是否可从各个供应商处获得。
Why
org.opencv.core
throws exception whenorg.bytedeco.opencv.opencv_core
is working?
两个版本的库都需要 link 到 OpenCV 本机库。这 linking 不适用于您的执行平台上的 org.opencv.core
。这有几个可能的原因:
其中一个
opencv
库具有该库的嵌入式副本,而另一个则没有。 (查看各个 JAR 文件中的内容,并将它们与此问答中关于如何嵌入本机库的内容进行比较:How to bundle a native library and a JNI library inside a JAR?)或者,两个 JAR 文件都没有嵌入本机库,但是您的执行已经安装了 适当的 版本的库。失败的版本正在寻找名称为“opencv_java410”的库。