the*_*Dev 13 java eclipse opencv javacv ubuntu-12.04
openCV核心扩展的Java jar库在哪里,以便我可以在我的java代码中导入它?
我找不到一个他们教过如何正确设置所有东西的地方.我正在使用Ubuntu 12.04
,我安装了openCV.我想在eclipse IDE中使用它,eclipse需要一个jar文件,以便我可以使用openCV函数.我看到以下链接使用了import org.opencv.core.Core;
我怎样才能获得那些.jar文件?
The*_*ect 15
你可以openCV
在这个链接上找到围绕互联网的linux for jars的罐子.但是,除非您有本机库openCV需要完成其工作,否则它将无法工作.
在eclipse java项目中获得openCV的一种可靠方法是从源代码编译自己的jar文件,使其可用,如下所述:https: //udallascs.wordpress.com/2014/03/30/adding-opencv-and -configuring到工作与-日食和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
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,那么你的罐子将在bin目录下:
./bin/opencv-300.jar
Run Code Online (Sandbox Code Playgroud)
将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());
}
}
Run Code Online (Sandbox Code Playgroud)
在eclipse中,您的jar文件将需要您之前构建的本机库可用.所以在eclipse中,导航到:
Project->Properties->Java Build Path->Libraries tab-> Add external jars -> opencv-300.jar
Run Code Online (Sandbox Code Playgroud)
然后双击:"Native library location"并输入构建它的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]
Run Code Online (Sandbox Code Playgroud)
如果你想把这个程序交给其他人并让他们能够运行它,他们需要在他们的系统上使用openCV 3.0.0版,否则java程序将找不到库,并立即退出.
为什么这么难,为什么这不仅仅是一个简单的罐子?
因为openCV是用C语言编写的,而jar文件只是进入那个C世界的窗口.因此,我们必须制作一个rube goldberg机器,以使OpenCV中的方法可用于您的Java应用程序.
归档时间: |
|
查看次数: |
26776 次 |
最近记录: |