windows和linux环境下java项目整合opencv
1. windows
windows搭建比较简单
1.下载windows包
2.安装后在安装目录找到
xx\opencv\build\java\opencv-330.jar
3.切换到控制台命令:
mvn install:install-file -DgroupId=org.opencv -DartifactId=opencv
-Dversion=3.3.0 -Dpackaging=jar -Dfile= xx\opencv\build\java\opencv-330.jar
导入至仓库
4.在项目中添加依赖
<dependency>
<groupId>org.opencv</groupId>
<artifactId>opencv</artifactId>
<version>3.3.0</version>
</dependency>
5.在安装目录下找到dll库,和上面的jar包同级
在项目的resources目录下创建一个lib文件夹,把dll库放进去
6.写个main方法
public static void main(String[] args) throws Exception {
URL url = ClassLoader.getSystemResource("lib/opencv_java330.dll");
System.load(url.getPath());
Mat image = imread("C://img/4.jpg", 1);
Mat image1 = HandleImgUtils.correct(image);
Imgcodecs.imwrite("C://img/656.jpg", image1);
Mat mat = image.clone();
Imgproc.Canny(image, mat, 60, 200);
Imgcodecs.imwrite("C://img/656.jpg", mat);
}
2. linux
1.下载zip包,官网下载十分慢,下载后的文件还不能用,建议用别人下载好的资源
unzip opencv-3.3.0.zip
cd opencv-3.3.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv ..
如果 make编译的时候zxvf ippicv_2017u2_mac_intel64_20170418.tgz这个包下载不了
在网上下载一个ippicv_2017u2_mac_intel64_20170418.tgz包,随便放哪里 命令:vim
3rdparty/ippicv/ippicv.cmake 将
https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
替换为"file:///刚才下载的tgz地址/" 再执行 cmake -D CMAKE_BUILD_TYPE=RELEASE -D
CMAKE_INSTALL_PREFIX=/usr/local/opencv …
yum install ant
make -j8
sudo make install
ldconfig -v | grep opencv
最后是这个样子的
这里会生成so库和jar包
java代码 windows和linux下完美运行
String libName = "";
if (SystemUtils.IS_OS_WINDOWS) {
System.out.println("windows");
libName = "lib/opencv_java330.dll";
URL url = ClassLoader.getSystemResource(libName);
System.load(url.getPath());
} else if (SystemUtils.IS_OS_LINUX) {
System.out.println("linux");
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
opencv-3.3.0.zip:链接: https://pan.baidu.com/s/1hvxLMslH1gSDKRhbo1tL5g 提取码: 6y63
如果能帮到你请点个赞*