java xml 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文件夹,并将这两个包放进去。

5d9793e166c89f4217db5f92208a9a75.png

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

org

opencv

system

${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar

注意版本要修改成你自己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();

}

}

效果:

d934fa7a3f10e24b5cd3654f41097cc2.png

四、结束

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值