赞
踩
作为图像处理出身,不仅仅要会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添加依赖如下(或者其他方式添加依赖均可)
- <dependency>
- <groupId>org</groupId>
- <artifactId>opencv</artifactId>
- <scope>system</scope>
- <systemPath>${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar</systemPath>
- </dependency>
注意版本要修改成你自己opencv的版本。
至此,配置完成。
在java中调用dll:
- // 加载动态库
- URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");
- System.load(url.getPath());
(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();
- }
- }
效果:
简单介绍了java使用opencv的方法,后续可能会基于springboot做一些web方面图像处理的功能,做人不能局限,技多不压身,只能显得更屌丝而已。我就是我,不一样的小马哥。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。