1. 前言
在java项目使用opencv除了需要引入相关的POM依赖,还需要加载库文件:
- Windows环境是opencv_java451.dll
- Linux环境下是opencv_java451.so 本文主要介绍如何编译opencv获取相关库文件;
2. 环境说明:
- 操作系统:Win11/Centos stream 9
- JDK:1.8.0
- opencv: 4.5.1 (可以在下载相关文件时自行选择版本)
3. windows 编译获取opencv_java451.dll:
3.1 到opencv官网下载对应版本的文件:
3.2 安装windows版本,提取依赖包
点击执行opencv-4.5.1-vc14_vc15.exe提取文件,到opencv\build\java\x64目录获取opencv_java451.dll文件
4. linux环境编译openCV获取依赖opencv_java451.so
4.1.安装依赖项
sudo yum install -y epel-release
sudo yum groupinstall -y "Development Tools"
sudo yum install -y cmake3 git gtk2-devel libpng-devel libjpeg-devel libtiff-devel \
jasper-devel openexr-devel webp-devel tbb-devel eigen3-devel python3-devel \
gstreamer-plugins-base-devel freeglut-devel mesa-libGL mesa-libGL-devel ant
4.2. 下载 OpenCV 源码(根据自己需要的版本进行下载)
wget -O opencv-4.5.1.zip https://github.com/opencv/opencv/archive/4.5.1.zip
wget -O opencv_contrib-4.5.1.zip https://github.com/opencv/opencv_contrib/archive/4.5.1.zip
unzip opencv-4.5.1.zip
unzip opencv_contrib-4.5.1.zip
4.3. 配置 CMake
mkdir -p build && cd build
cmake3 -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.1/modules \
-D BUILD_opencv_java=ON \
-D BUILD_opencv_java_bindings_generator=ON \
-D BUILD_SHARED_LIBS=ON \
-D BUILD_STATIC_LIBS=OFF \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
../opencv-4.5.1
找到java相关的输出,ant,java等信息正确配置即可:
-- Java:
-- ant: /bin/ant (ver 1.10.9)
-- JNI: /usr/lib/jvm/java/include /usr/lib/jvm/java/include/linux /usr/lib/jvm/java/include
-- Java wrappers: YES
-- Java tests: YES
4.4. 编译
# 只编译java依赖包
make -j$(nproc) opencv_java
# 编译全部(无需执行)
# make -j$(nproc)
输出如下,表示编译成功:
[100%] Linking CXX shared module ../../../lib/libopencv_java451.so
[100%] Built target opencv_java
依赖库在如下目录:
[build]# ll lib/libopencv_java451.so
-rwxr-xr-x. 1 root root 2771808 2月 18 14:26 lib/libopencv_java451.so