在Linux/Ubuntu安装给java使用的OpenCV
1. 简介
在这篇博客文章中,我们将在ubuntu操作系统中为java应用程序安装和设置OpenCV。OpenCV是一个被广泛使用的大型计算机视觉库。
我们还将介绍一些关于Java绑定的教程。
2. 下载OpenCV
你可以从OpenCV的公共Github库或他们的官方网站https://opencv.org/releases/下载OpenCV。选择所需的版本并单击“Sources”,下载压缩包。解压文件。
unzip opencv-4.3.0.zip
3. 编译生成OpenCV
本例中,OpenCV解压在“/opt/OpenCV-4.3.0”下。
新建生成目录并进入。
mkdir build
cd build
如果没有安装cmake,使用下列命令安装。
sudo apt-get install cmake
接下里生成和配置cmake在我们的系统中构建可执行文件。
cmake -DBUILD_SHARED_LIBS=OFF ..
注意:当OpenCV被构建为一组静态库时(-DBUILD_SHARED_LIBS=OFF选项),Java绑定动态库是完全足够的,即不依赖于其他OpenCV库,但包含了所有的OpenCV代码。
确保上面命令的输出如下所示:
如果没有找到ant和java,那么你可能会得到以下输出:
Java:
ant: NO
JNI: NO
Java tests: YES
因此,需要安装并设置java和安装ant。
sudo apt install openjdk-8-jdk
sudo apt-get install ant
如果你还是得到ant是NO,试一下下述的命令:
sudo snap install ant --classic
现在开始生成:
make -j4
注意:小心不要在构建期间耗尽内存。我们需要每个核4GB的内存。例如,如果我们使用4核进行编译(例如make -j4),我们需要一台至少有16GB RAM的机器。
生成需要一些时间。并且其中的输出要看起来像这样。
如果一切正常,则成功编译生成了OpenCV。确保以下文件被打包在相应的目录中。
/opt/opencv-4.3.0/build/lib/libopencv_java430.so
/opt/opencv-4.3.0/build/bin/opencv-430.jar
这些文件的路径是根据OpenCV版本和目录创建的。您需要确保必须创建so和jar文件。这个jar文件包含我们将在示例中使用的java包装器代码。
4. 运行示例程序
现在,我们将在项目库中添加编译后的jar文件。
IntelliJ Idea
进入 : File >> Project Structure >> Libraries (under project settings)
你可以在左上角看到+图标,要添加一个新的项目库,点击它,选择Java,并添加之前创建的jar文件的路径,即opencv-430.jar。
运行示例程序:
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class SampleTest {
public static void main(String[] args) {
System.load("/opt/opencv-4.3.0/build/lib/libopencv_java430.so");
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
}
}
确保加载了相应的.so文件。
输出:
mat = [ 1, 0, 0;
0, 1, 0;
0, 0, 1]
Gradle
对于那些在现有项目中运行OpenCV的人,你可以用Gradle项目来设置如下:
复制项目目录包中的jar文件,例如“libs”,并在构建中添加以下内部依赖项。gradle文件。
dependencies {
//other dependencies
compile fileTree(dir: 'libs', include: '*.jar')
}