OpenCV-Java版学习(1.在IDEA中使用OpenCV)

前言

因为最近要做一个关于计算机视觉的应用程序,所以便来学一下OpenCV的使用,上网找了许久也没找到OpenCV关于Java的教程,无奈之下只能照着官方的Python版的文档学习,所幸里面的函数的使用方法基本都一样。

IDEA中使用OpenCV

一.配置OpenCV库

1.导入OpenCV中Java的jar包和动态库
在opencv\build\java\下的jar包
OpenCV-Java版学习(1.在IDEA中使用OpenCV)_第1张图片
以及opencv\build\java\x64目录下的.dll动态库
OpenCV-Java版学习(1.在IDEA中使用OpenCV)_第2张图片
2.以SpringBoot为例,在resources下创建lib/opencv文件夹,把他们放到我们创建的目录底下,如下图:
OpenCV-Java版学习(1.在IDEA中使用OpenCV)_第3张图片
3.在pom.xml添加依赖

<dependency>
	<groupId>orggroupId>
    <artifactId>opencvartifactId>
    <scope>systemscope>
    <systemPath>${project.basedir}\src\main\resources\lib\opencv\opencv-451.jarsystemPath>
dependency>

注意:版本要修改成自己opencv的版本。

二.往项目中导入jar包

添加jar包

OpenCV-Java版学习(1.在IDEA中使用OpenCV)_第4张图片

把opencv中Java的jar包添加进项目
OpenCV-Java版学习(1.在IDEA中使用OpenCV)_第5张图片

测试

import org.junit.jupiter.api.Test;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.springframework.boot.test.context.SpringBootTest;

import java.net.URL;

import static org.opencv.highgui.HighGui.*;
import static org.opencv.imgcodecs.Imgcodecs.imread;
import static org.opencv.imgcodecs.Imgcodecs.imwrite;
import static org.opencv.imgproc.Imgproc.COLOR_RGB2GRAY;
import static org.opencv.imgproc.Imgproc.cvtColor;

@SpringBootTest
class DemoApplicationTests {

    @Test
    void contextLoads() {
    }
    @Test
    public void testOpencv() throws Exception {
        // 解决awt报错问题
        System.setProperty("java.awt.headless", "false");
        System.out.println(System.getProperty("java.library.path"));
        // 加载动态库
        URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java451.dll");
        System.load(url.getPath());
        // 读取图像
        Mat src = imread("D:\\OpenCV_Study\\demo1\\src\\main\\resources\\image\\test1.jpg",0);
        if (src.empty()) {
            throw new Exception("image is empty");
        }
        imshow("image",src);
        // 以灰度模式加载图像
        waitKey(0);
        destroyAllWindows();
    }
}

注意:加载图片的路径一定不能出现中文,不然会出现报错的情况。

最终效果如下:

至此,我们可以在IDEA上面使用OpenCV做计算机视觉相关的项目了。

你可能感兴趣的:(OpenCV,opencv,java)