我需要安装opencv并通过Maven + IntelliJ中的Java(在Windows和MacOS / OSX上)使用它。

我需要安装opencv并通过Maven + IntelliJ中的Java(在Windows和MacOS / OSX上)使用它。 什么是“标准”或简单的方法?

我GOOGLE了广泛,看看如何使用IntelliJ IDEA 12 OpenCV 。 这是为我工作,它看起来很简单。 如果有“更好”和/或“标准”方式,请发表评论。 愿望清单: 我希望能够从我的电脑轻松地删除opencv,如果不再需要 (我的一些笔记本电脑用完磁盘空间)。

以下是在macOS Sierra(10.12.1)上完成的

第一步:通过命令行下载并安装opencv(即macOS / OSX上的Terminal):参见http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

UPDATE 17-Nov-2016: http : //docs.opencv.org/3.0-beta/doc/tutorials/introduction/linux_install/linux_install.html

$ mkdir ~/dev/lib/opencv/github_opencv_161101 $ cd ~/dev/lib/opencv/github_opencv_161101 $ git clone https://github.com/opencv/opencv.git 

我使用~/dev/lib/opencv/github_opencv_161101作为我的安装目录,所以如果需要,我可以很容易地将其删除,并在安装时提醒自己。

第2步:建立。 请注意, $ sudo make install下的最后一个命令会将所有库复制到/usr/local 。 然而,我试图通过至少另外两种方式安装opencv(通过brew和http://opencv.org/platforms/android.html ),所以我不确定哪些库位于/usr/local

 $ cd opencv $ mkdir release $ cd release $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. $ make $ sudo make install 

使用工具的注意事项 :您还需要安装JavaSDK。 我的cmake

 $ cmake -version cmake version 3.6.2 

如果您没有安装cmake ,请使用brew (或从http://brew.sh/安装)

 $ brew install cmake 

您可能还需要安装命令行工具不工作 – 通过OS X El Capitan / macOS-sierra

 $ xcode-select --install 

第3步:在IntelliJ中运行HelloCV.java 。 启动IntelliJ。 创建新项目。 选择Maven 在这里输入图像说明

继续,直到你得到 在这里输入图像说明 启用自动导入!

创建新的类HelloCV并键入(从https://github.com/opencv-java/opencv-java-tutorials/blob/master/docs/source/02-first-java-application-with-opencv.rst ):

 public class HelloCV { public static void main(String[] args){ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Mat.eye(3, 3, CvType.CV_8UC1); System.out.println("mat = " + mat.dump()); } } 

你应该得到像这样的东西: 在这里输入图像说明

现在,终于有效载荷;-)选择文件 – >项目结构: 在这里输入图像说明

选择库(或全局库),并添加Java库: 在这里输入图像说明

https://stackoverflow.com/a/24853043/1006226 :在我的情况下,导航到~/dev/lib/opencv/github_opencv_161101/opencv/release/bin ,或者~/path_to_your_dir/opencv/release/bin在这里输入图像说明

您现在可以编译并运行您的HelloCV.java:

 import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; public class HelloCV { public static void main(String[] args){ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Mat.eye(3, 3, CvType.CV_8UC1); System.out.println("mat = " + mat.dump()); } } 

但是你会得到下面的运行时错误:

 Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.dak.HelloCV.main(HelloCV.java:9) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) Process finished with exit code 1 

返回菜单 – >文件 – >项目结构,选择库并在我的情况下添加~/dev/lib/opencv/github_opencv_161101/opencv/release/lib ,或~/path_to_your_dir/opencv/release/lib

在这里输入图像说明 在这里输入图像说明

现在,你通过JNI链接到本地​​库。 运行HelloCV,你应该得到:

 mat = [ 1, 0, 0; 0, 1, 0; 0, 0, 1] Process finished with exit code 0