OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
在 Eclipse 中使用 OpenCV Java

上一个教程: Java 开发简介
下一个教程: Clojure OpenCV 开发简介

原始作者Barış Evrim Demiröz
兼容性OpenCV >= 3.0
警告
本教程可能包含过时信息。

自 2.4.4 版本起,OpenCV 支持 Java。在本教程中,我将说明如何在 Windows 中为在 Eclipse 中使用 OpenCV Java 设置开发环境,以便用更少的精力编写代码并减少错误,尽情享受现代语言的优势,这些优势包括垃圾回收和高度可重构性(重命名变量、提取方法等)。下面会进行介绍。

配置 Eclipse

首先,从下载页面获取最新版的 OpenCV,然后将其解压到一个简单的位置,例如 C:\OpenCV-2.4.6\。我正在使用 2.4.6 版本,但不同版本之间的步骤大致相同。

现在,我们将在 Eclipse 中定义 OpenCV 作为用户库,以便我们可以为任何项目重复使用该配置。启动 Eclipse,然后从菜单中选择 Window –> Preferences。

在 Java –> Build Path –> User Libraries 下导航,然后单击 New....

为新库输入一个名称,例如 OpenCV-2.4.6。

现在选择你的新用户库并单击 Add External JARs....

浏览 C:\OpenCV-2.4.6\build\java\ 并选择 opencv-246.jar。在添加 jar 后,展开 opencv-246.jar 并选择 Native library location,然后按 Edit....

选择 External Folder... 并浏览以选择文件夹 C:\OpenCV-2.4.6\build\java\x64。如果您有 32 位系统,需要选择 x86 文件夹,而不是 x64。

用户库配置应如下所示

在新的 Java 项目中测试配置

现在开始创建一个新的 Java 项目。

在 Java Settings 步骤中,在 Libraries 选项卡下,选择 Add Library... 并选择 OpenCV-2.4.6,然后单击 Finish。

库应如下所示

现在你已经创建并配置了一个新的 Java 项目,是时候进行测试了。创建一个新的 Java 文件。为了方便起见,这里有一个 starter 代码

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Hello
{
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() );
}
}
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3

运行代码后,你应看到 3x3 单位矩阵作为输出。

没错,每当启动新项目时,只需要添加已定义为项目中 OpenCV 用户库就可以了。就可以尽情享受功能强大、更轻松的开发环境了 :)

使用 OpenCV 和 MKL 依赖项运行 Java 代码

如果你已使用 MKL 库构建 OpenCV,并且存在调用使用 Intel MKL 的 OpenCV 函数的 Java 代码,则可能会收到以下错误(例如,在 Ubuntu 系统中)

Intel MKL致命错误:无法加载 libmkl_avx2.so 或 libmkl_def.so。

Linux 上有一个解决办法,是在 Intel MKL 库前面加载(在终端中运行命令,或将其添加到.bashrc 文件中)。如果已设置LD_PRELOAD变量,则命令行应类似于(在前面添加 $LD_PRELOAD:

‍export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so

然后,从已设置此环境变量的终端(echo $LD_PRELOAD)中运行 Eclipse IDE,错误应会消失。