在 MAC OS Sierra 上使用 Java 安装 OpenCV

OpenCV installation with Java on MAC OS Sierra

正在尝试在 MAC OS 10.12.2 (Sierra) 上为 Java 安装 OpenCV3.1。按照 link 中的命令进行操作。我想安装它以便我可以使用 OpenCV 配置 Eclipse。

安装时出现几个错误(尝试了不止一次)

尝试 1: brew install opencv3

错误代码段

[ 55%] 构建目标 opencv_imgcodecs make: *** [all] 错误 2

尝试 2: brew install opencv3 --HEAD --with-java

错误片段:

[ 58%] 链接 CXX 共享库 ../../lib/libopencv_features2d.dylib cd /tmp/opencv3-20161216-63759-hur0m6/macbuild/modules/features2d && /usr/local/Cellar/cmake/3.7.1/bin/cmake -E cmake_link_script CMakeFiles/opencv_features2d.dir/link.txt --verbose=1 /usr/local/Homebrew/Library/Homebrew/shims/super/clang++ -I/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/include/darwin - fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-原型 -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment - fdiagnostics-show-option-Wno-long-long-Qunused-arguments-Wno-semicolon-before-method-body-fno-omit-frame-pointer-msse-msse2-mavx-fvisibility=hidden-fvisibility-inlines-hidden- mf16c -DNDEBUG -DNDEBUG -dynamiclib -Wl,-headerpad_max_install_names -compatibility_version 3.1.0 -current_version 3.1.0 -o ../../lib/libopencv_features2d.3.1.0.dylib -install_name @rpath/libopencv_features2d.3.1.dylib CMakeFiles/opencv_features2d.dir/src/agast.cpp.o CMakeFiles/opencv_features2d.dir/src/agast_score. cpp.o CMakeFiles/opencv_features2d.dir/src/akaze.cpp.o CMakeFiles/opencv_features2d.dir/src/bagofwords.cpp.o CMakeFiles/opencv_features2d.dir/src/blobdetector .cpp.o CMakeFiles/opencv_features2d.dir/src/brisk.cpp.o CMakeFiles/opencv_features2d.dir/src/draw.cpp.o CMakeFiles/opencv_features2d.dir/src/dynamic.cpp.o CMakeFiles/opencv_features2d.dir/src/evaluation.cpp.o CMakeFiles/opencv_features2d.dir/src/fast.cpp.o CMakeFiles/opencv_features2d.dir/src/fast_score.cpp.o CMakeFiles/opencv_features2d.dir/src/feature2d.cpp.o CMakeFiles/opencv_features2d.dir/src/gftt.cpp.o CMakeFiles/opencv_features2d.dir/src/kaze.cpp.o CMakeFiles/opencv_features2d.dir/src/kaze/AKAZEFeatures.cpp.o CMakeFiles/opencv_features2d.dir/src/kaze/KAZEFeatures.cpp.o CMakeFiles/opencv_features2d.dir/src/kaze/fed.cpp.o CMakeFiles/opencv_features2d.dir/src/kaze/nldiffusion_functions.cpp.o CMakeFiles/opencv_features2d.dir/src/keypoint.cpp.o CMakeFiles/opencv_features2d.dir/src/main.cpp.o CMakeFiles/opencv_features2d.dir/src/matchers.cpp.o CMakeFiles/opencv_features2d.dir/src/mser.cpp.o CMakeFiles/opencv_features2d.dir/src/orb.cpp.o CMakeFiles/opencv_features2d.dir/opencl_kernels_features2d.cpp.o -Wl,-rpath,/tmp/opencv3-20161216-63759-hur0m6/macbuild/lib ../../lib/libopencv_flann.3.1.0.dylib ../../lib/libopencv_ml.3.1.0.dylib ../../lib/libopencv_highgui.3.1.0.dylib ../../../3rdparty /ippicv/unpack/ippicv_osx/lib/libippicv.a ../../lib/libopencv_videoio.3.1.0.dylib ../../lib/libopencv_imgcodecs.3.1.0.dylib ../../lib/libopencv_imgproc.3.1.0.dylib ../../lib/libopencv_core.3.1.0.dylib cd /tmp/opencv3-20161216-63759-hur0m6/macbuild/modules/features2d && /usr/local/Cellar/cmake/3.7.1/bin/cmake -E cmake_symlink_library ../../lib/libopencv_features2d.3.1.0.dylib ../.. /lib/libopencv_features2d.3.1.dylib ../../lib/libopencv_features2d.dylib [ 58%] 建成目标 opencv_features2d make: *** [all] 错误 2

github 上针对问题给出的建议似乎没有解决问题。有人可以帮我解决这个问题吗?

我还尝试使用命令 brew install opencv 安装 openCV 2.4.13,这也引发了同样的错误。

终于可以安装了。问题是 Java 需要设置 ANT。虽然我安装了 ANT,但 ANT_HOME 在我的 ENV 中没有正确设置。正确设置后,我就能够解决此安装问题。

I would like to install this so that I can configure Eclipse with OpenCV.

为后代添加我如何让 opencv 在 Eclipse 中工作。我在 Eclipse 中的这一行出现错误,

import org.opencv.core.CvType;

因为我的构建 > 配置没有 opencv 外部 JAR 文件。所以我将我的 Java 项目转换为 Maven:

Right click project > Convert To Maven

然后按照以下步骤添加 Maven 依赖项: How do I add a Maven dependency in Eclipse?

最后我将粗体代码添加到 pom.xml

<project
...

<dependencies>
<!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv -->
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>4.0.1-1.4.4</version>
</dependency>
</dependencies>

<modelVersion 
...

然后右键单击项目 > 运行 As > Java Application ... 成功了!

试试这个示例 Java OpenCV 程序来检查你的程序是否有效:

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());
        }
}