java opencv

在java中的opencv是怎样用的呢?下面就让我们一起来了解一下吧:

opencv是属于一个基于Apache2.0许可(开源)发行的跨平台计算机视觉与机器学习软件库,能够运行在运行在Linux、Windows、Android和Mac OS操作系统上。此外,opencv还具有C ++、Python、Java与MATLAB接口,并且可以支持Windows、Linux、Android与Mac OS,opencv本身主要是倾向于实时视觉应用,并且能在可用时利用MMX和SSE指令。

一般来说,在java中使用opencv需要先安装好,可以在官网中下载opencv,然后在opencv\build\java\及opencv\build\java\x64下提取jar包以及动态库,比如以springboot为例,可以在resources下创建lib/opencv文件夹,并且将这两个包放进去,然后就可以在pom.xml添加依赖,当然也可以选择其他方式添加依赖,不过一定要注意版本最好是要修改成opencv的版本才可。

参考范例:

创建一个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

免责声明:本内容来自橡树街平台创作者或收集于互联网公开资源,不代表橡树街网的观点和立场。如有侵权内容,请联系我们删除。联系邮箱:ihuangque@qq.com
相关推荐
java开源是什么意思
2022-08-05
java开源是什么意思
Java工程师是一个什么样的职业
2022-08-05
Java工程师是一个什么样的职业
Java认证证书是电子还是纸质的
2022-08-05
Java认证证书是电子还是纸质的
Java认证考试要求
2022-08-05
Java认证考试要求
java package
2022-08-05
java package
java与c的区别
2022-08-05
java与c的区别
java调用webservice接口
2022-08-05
java调用webservice接口
java工程师学什么
2022-08-05
java工程师学什么
Java的用处有什么
2022-08-05
Java的用处有什么
java是什么语言写的
2022-08-05
java是什么语言写的
手机老是弹出广告怎么解决
2022-08-05
手机老是弹出广告怎么解决
小爱同学怎么判断我喜欢的人喜不喜欢我
2022-08-05
小爱同学怎么判断我喜欢的人喜不喜欢我
安卓手机如何打开.kmz文件
2022-08-05
安卓手机如何打开.kmz文件
苹果手机文件管理在哪里
2022-08-05
苹果手机文件管理在哪里
安卓手机如何打开.sav文件
2022-08-05
安卓手机如何打开.sav文件
aqm-al00是华为什么型号
2022-07-28
aqm-al00是华为什么型号
奥运会举办国家怎么选
2022-07-28
奥运会举办国家怎么选
麒麟是谁的坐骑
2022-07-28
麒麟是谁的坐骑
苹果Macbookair哪个是截屏键
2022-07-28
苹果Macbookair哪个是截屏键
ipad充电线能用在iphone上吗
2022-07-28
ipad充电线能用在iphone上吗
12123登录异常怎么回事
2022-07-28
12123登录异常怎么回事
快手播放量收益在哪里
2022-07-28
快手播放量收益在哪里
对于学生会的认识
2022-07-28
对于学生会的认识
匿名填写是什么意思
2022-07-28
匿名填写是什么意思
圣诞节是新年吗
2022-07-28
圣诞节是新年吗