当前位置:   article > 正文

Java中使用opencv_org.opencv

org.opencv

零、前言

作为图像处理出身,不仅仅要会C++图像处理、matlab图像处理、python图像处理、最起码也得会java图像处理,当然我最终还都用的是opencv这个机器视觉库了。今天简单介绍一下java中如何使用opencv。

一、配置库

(1)官网下载opencv,在opencvuildjava以及opencvuildjavad下提取jar包以及动态库。

(2)以springboot举例,在resources下创建lib/opencv文件夹,并将这两个包放进去。

(3) 在pom.xml添加依赖如下(或者其他方式添加依赖均可)

<dependency>
            <groupId>org</groupId>
            <artifactId>opencv</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}srcmain
esourceslibopencvopencv-440.jar</systemPath>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

至此,配置完成。

二、其他知识

在java中调用dll:

// 加载动态库
URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");
System.load(url.getPath());
  • 1
  • 2
  • 3

三、简单的例子

(1)创建一个springboot项目,在测试类中编写代码

读图像以及灰度化:

package testopencv.demo;

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

import java.net.URL;

import static org.opencv.highgui.HighGui.imshow;
import static org.opencv.highgui.HighGui.waitKey;
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;

@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {
    /**
     * @return
     * @Description
     * @Param
     * @Author zhangsan
     * @Date 2020.09.05 9:43
     **/
    @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_java440.dll");
        System.load(url.getPath());
        // 读取图像
        Mat image = imread("C:\Users\admin\Pictures\hello.jpg");
        if (image.empty()) {
            throw new Exception("image is empty");
        }
        imshow("Original Image", image);

        // 创建输出单通道图像
        Mat grayImage = new Mat(image.rows(), image.cols(), CvType.CV_8SC1);
        // 进行图像色彩空间转换
        cvtColor(image, grayImage, COLOR_RGB2GRAY);

        imshow("Processed Image", grayImage);
        imwrite("D://hello.jpg", grayImage);
        waitKey();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

效果:

四、结束

简单介绍了java使用opencv的方法,后续可能会基于springboot做一些web方面图像处理的功能,做人不能局限,技多不压身,只能显得更屌丝而已。我就是我,不一样的小马哥。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/650531
推荐阅读
相关标签
  

闽ICP备14008679号