OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
在Eclipse中使用OpenCV Java

上一篇教程: Java开发入门
下一篇教程: 使用Clojure进行OpenCV开发入门

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

自2.4.4版本以来,OpenCV支持Java。在本教程中,我将解释如何在Windows系统中设置使用OpenCV Java和Eclipse的开发环境,以便您可以享受到垃圾回收、高度可重构(重命名变量、提取方法等等)的现代语言带来的好处,使您可以更轻松地编写代码并减少错误。我们开始吧。

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

如果您使用MKL库构建了OpenCV,并且某些Java代码调用了使用Intel MKL的OpenCV函数,则可能会出现以下错误(例如在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,错误应该会消失。