当前位置:   article > 正文

Java中使用opencv_java opencv

java opencv

零、前言

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

一、配置库

(1)官网下载opencv,在opencv\build\java\以及opencv\build\java\x64下提取jar包以及动态库。

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

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

  1. <dependency>
  2. <groupId>org</groupId>
  3. <artifactId>opencv</artifactId>
  4. <scope>system</scope>
  5. <systemPath>${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar</systemPath>
  6. </dependency>

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

    至此,配置完成。

二、其他知识

        在java中调用dll:

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

三、简单的例子

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

读图像以及灰度化:

  1. package testopencv.demo;
  2. import org.junit.jupiter.api.Test;
  3. import org.junit.runner.RunWith;
  4. import org.opencv.core.CvType;
  5. import org.opencv.core.Mat;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.test.context.junit4.SpringRunner;
  8. import java.net.URL;
  9. import static org.opencv.highgui.HighGui.imshow;
  10. import static org.opencv.highgui.HighGui.waitKey;
  11. import static org.opencv.imgcodecs.Imgcodecs.imread;
  12. import static org.opencv.imgcodecs.Imgcodecs.imwrite;
  13. import static org.opencv.imgproc.Imgproc.COLOR_RGB2GRAY;
  14. import static org.opencv.imgproc.Imgproc.cvtColor;
  15. @RunWith(SpringRunner.class)
  16. @SpringBootTest
  17. class DemoApplicationTests {
  18. /**
  19. * @return
  20. * @Description
  21. * @Param
  22. * @Author zhangsan
  23. * @Date 2020.09.05 9:43
  24. **/
  25. @Test
  26. public void testOpencv() throws Exception {
  27. // 解决awt报错问题
  28. System.setProperty("java.awt.headless", "false");
  29. System.out.println(System.getProperty("java.library.path"));
  30. // 加载动态库
  31. URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");
  32. System.load(url.getPath());
  33. // 读取图像
  34. Mat image = imread("C:\\Users\\admin\\Pictures\\hello.jpg");
  35. if (image.empty()) {
  36. throw new Exception("image is empty");
  37. }
  38. imshow("Original Image", image);
  39. // 创建输出单通道图像
  40. Mat grayImage = new Mat(image.rows(), image.cols(), CvType.CV_8SC1);
  41. // 进行图像色彩空间转换
  42. cvtColor(image, grayImage, COLOR_RGB2GRAY);
  43. imshow("Processed Image", grayImage);
  44. imwrite("D://hello.jpg", grayImage);
  45. waitKey();
  46. }
  47. }

     效果:

 四、结束

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

 

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

闽ICP备14008679号