在哪里获取openCV的jar包?

16

我该在哪里找到Java jar库以导入openCV核心扩展,并在我的Java代码中使用?

我找不到任何地方教如何正确设置所有内容。我正在使用Ubuntu 12.04,已经安装了openCV。我想在eclipse IDE中使用它,而eclipse需要一个jar文件才能使用openCV函数。我看到以下链接link使用了import org.opencv.core.Core;

我该如何获取这些.jar文件?


1
请按照以下步骤操作:http://docs.opencv.org/2.4/doc/tutorials/introduction/java_eclipse/java_eclipse.html#java-eclipse - Abdul Wasae
1
@AbdulWasae 这并没有描述如何实现jar文件。这是在你拥有jar文件时要做的事情。我最近也遇到了这个问题,需要在命令行上构建opencv源代码。这通常发生在添加不属于主源树的contrib模块时。在成功构建后,jar文件不存在,只有支持的.so文件。 - Jay Snayder
1个回答

20
你可以在互联网上找到与 openCV 相关的 Linux jar 包,比如在 this link。但是,如果没有 openCV 所需的本地库,它将无法工作。
确保将 openCV 引入你的 Eclipse Java 项目中的方法是从源代码编译自己的 jar 文件,并按照此处描述的方式使其可用:https://udallascs.wordpress.com/2014/03/30/adding-opencv-and-configuring-to-work-with-eclipse-and-java/ 以下是 Linux 的指令概述,请在终端中运行这些命令:
cd ~
mkdir Vision
cd Vision
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
make -j8

如果一切成功,那么你的jar包将在bin目录下:
./bin/opencv-300.jar

将opencv-300.jar移动到项目的lib目录中,并将其包含为外部jar。这是一个使用它的基本程序。
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

public class Main {

    public static void main(String[] args) {
        System.out.println("Welcome to OpenCV " + Core.VERSION);
        System.out.println(System.getProperty("java.library.path"));
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat m  = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println("m = " + m.dump());
    }
}

在 Eclipse 中,您的 JAR 文件需要之前构建的本地库可用。因此,在 Eclipse 中导航到:

Project->Properties->Java Build Path->Libraries tab-> Add external jars -> opencv-300.jar

请双击 "本地库位置" 并输入您构建它的 build/lib 路径,例如我的路径是:/home/el/Vision/opencv/build/lib

运行 Java 程序,程序将打印:

Welcome to OpenCV 3.0.0-dev
/home/el/Vision/opencv/build/lib
m = [1,   0,   0;
     0,   1,   0;
     0,   0,   1]

如果您想将此程序交给他人运行,他们需要在其系统上安装openCV版本3.0.0,否则java程序将找不到库并立即退出。
为什么这么难,为什么这不只是一个简单的jar文件?
因为openCV是用C编写的,而jar文件只是进入该C世界的窗口。因此,我们必须制作一个Rube Goldberg机器,使OpenCV中的方法可用于您的Java应用程序。

4
谢谢您的帮助,但是即使我按照上面链接提供的OpenCV的安装步骤进行了制作和安装,我仍然没有找到任何jar文件。我现在被卡住了,请问您能否明确指出我需要采取的行动? - theAndDev
9
如果有一个Maven仓库,事情会变得更加简单化... - Bachi
2
没有“扩展opencv-300.jar”的选项。 - Schütze
7
那么,将OpenCV制作成可执行程序毫无意义,因为下载我的程序的非技术人员还必须经过安装它所需的复杂步骤,对吗? - Martin Erlic
1
如果你的JAR文件没有生成,那么你需要安装Apache Ant。请注意cmake -D BUILD_SHARED_LIBS=OFF的输出。你需要类似于以下的东西:-- Java: -- ant: /usr/bin/ant (版本1.9.6) -- JNI: /usr/lib/jvm/java-8-oracle/include /usr/lib/jvm/java-8-oracle/include/linux /usr/lib/jvm/java-8-oracle/include - maxtorzito
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接