OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
将 OpenCV Java 与 Eclipse 一起使用

上一篇教程: 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 设置步骤的“Libraries”选项卡下,选择“Add Library...”并选择 OpenCV-2.4.6,然后单击“Finish”。

库应如下所示

现在您已经创建并配置了一个新的 Java 项目,是时候进行测试了。创建一个新的 java 文件。这是一个方便的入门代码

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 代码

如果您使用 Intel MKL 构建了 OpenCV,并且使用了一些调用使用 Intel MKL 的 OpenCV 函数的 Java 代码,您可能会遇到以下错误(例如,在 Ubuntu 上)

‍Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or 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

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