java调用opencv
因网上java调用opencv的资料比较少,因近期工作中的需要,整理了一下遇到的问题,也帮助大家出现类似问题,进行解决方法,本次使用的版本是opencv 4.7.0版本。
1.预编译出现ANT-NO和Java-No的问题
- 如果出现这个问题是因为我们的环境变量没有配置好
# unbut系统和deepin系统可以执行如下命令
sudo apt install ant
2. 配置环境变量
- 配置环境变量需要java和ant的环境变量都配置才可以
vim /etc/profile
- 配置环境变量如下
#JDK
export JAVA_HOME=/usr/local/java/jdk-17.0.4.1
export PATH=$PATH:$JAVA_HOME/bin;
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar;
#Maven
export MAVEN_HOME=/etc/maven/
export PATH=${
PATH}:${MAVEN_HOME}/bin;
#ANT
export ANT_HOME=/usr/share/ant/
- 执行完成以上之后,在进行source /etc/profile
3.之后配置之后在进行验证
cd /data/home/hfg/Soft/opencv-4.7.0/opencv-4.7.0/build
## 进行预编译
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local BUILD_SHARED_LIBS=OFF ..
4.进行安装
make -j 4
5.最终在进行执行
- 安装成功之后会有这个文件夹
cd /data/home/hfg/Soft/opencv-4.7.0/opencv-4.7.0/samples/cpp/example_cmake/build
./opencv_example
6.Idae进行配置
-
添加地址如下
-
找到自己的so文件
/data/home/hfg/Soft/opencv-4.7.0/opencv-4.7.0/build/lib/libopencv_java470.so
package com.huiye.opencv;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class AddWeighted {
public static void main(String[] args) {
System.load("/data/home/hfg/Soft/opencv-4.7.0/opencv-4.7.0/build/lib/libopencv_java470.so");
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
}
}
- 输出如下结果