前言

因为最近要做一个关于计算机视觉的应用程序,所以便来学一下OpenCV的使用,上网找了许久也没找到OpenCV关于Java的教程,无奈之下只能照着官方的Python版的文档学习,所幸里面的函数的使用方法基本都一样。

IDEA中使用OpenCV

一.配置OpenCV库

1.导入OpenCV中Java的jar包和动态库
在opencv\build\java\下的jar包

以及opencv\build\java\x64目录下的.dll动态库

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-451.jar</systemPath>
</dependency>

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

二.往项目中导入jar包

添加jar包

把opencv中Java的jar包添加进项目

测试

import org.junit.jupiter.api.Test;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.springframework.boot.test.context.SpringBootTest;import java.net.URL;import static org.opencv.highgui.HighGui.*;
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;@SpringBootTest
class DemoApplicationTests {@Testvoid contextLoads() {}@Testpublic 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_java451.dll");System.load(url.getPath());// 读取图像Mat src = imread("D:\\OpenCV_Study\\demo1\\src\\main\\resources\\image\\test1.jpg",0);if (src.empty()) {throw new Exception("image is empty");}imshow("image",src);// 以灰度模式加载图像waitKey(0);destroyAllWindows();}
}

注意:加载图片的路径一定不能出现中文,不然会出现报错的情况。

最终效果如下:

至此,我们可以在IDEA上面使用OpenCV做计算机视觉相关的项目了。

OpenCV-Java版学习(1.在IDEA中使用OpenCV)相关推荐

  1. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

  2. OpenCV Java入门二 在Windows10系统上安装OpenCV

    准备好痛苦了没有? 痛苦之后是欢乐.因为必竟大多人还是用的WINDOWS来开发的居多.因此如果OpenCV无法在Win10下安装,一样不能起到普及作用. 而Windows下的编译安装OpenCV也是最 ...

  3. 微信公众号开发-Java版学习笔记

    微信公众号开发整体不难,主要是熟悉微信公众号常用的一些接口文档,然后会一门后端语言(比如java)即可. 罗召勇老师教程:微信公众号开发-Java版(蓝桥罗召勇) 微信公众号文档:微信公众号官方文档 ...

  4. 36篇博文带你学完opencv :python+opencv进阶版学习笔记目录

    基础版学习笔记传送门 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版) 进阶版笔记 项目 opencv进阶学习笔记1: 调用摄像头用法大全(打开摄像头,打开摄像 ...

  5. WorldWind Java 版学习:1、启动过程

    一.JOGL使用介绍 使用 JOGL,需要构造GLCapabilities.GLCanvas 和 GLEventListener 的对象,其中 GLCapabilities 对象用于构造 GLCanv ...

  6. world wind java_WorldWind Java 版学习:1、启动过程

    一.JOGL使用介绍 使用 JOGL,需要构造GLCapabilities.GLCanvas 和 GLEventListener 的对象,其中 GLCapabilities 对象用于构造 GLCanv ...

  7. OpenCV Java入门一 在MAC系统上安装OpenCV

    OpenCV网上讲的一个都不对,要么卡死电脑,要么训练模型写死,要么都只是显示显示人脸就说入门了.没有一个从安装.使用.驱动摄像头.训练模型.辩别人脸的全过程.最夸张的是连怎么安装个OpenCV的资料 ...

  8. Opencv Python版学习笔记01.计算机眼中的图像

    在计算机眼里,图像是通过数字矩阵的形式存储的.如上图所示,这张图片被分为了若干个小方格,但是每个方格仍然不够小,随意取出一个方格放大观察,这个方格是由许多小格组成的,其中每个小格叫做一个像素点,像素点 ...

  9. WorldWind Java 版学习:8、事件响应

    1.在 WWPanelImpl 构造时,会调用 createView 构造一个 View 对象,此处是 BasicOrbitView 对象,在构造 BasicOrbitView 对象的时候,会构造一个 ...

  10. WorldWind Java 版学习:10、服务器响应

    一.服务器处理请求过程 1.服务器启动时,会先读一系列配置文件,然后启动 SocketListener 进行监听 ApplicationServerLauncher.main(String[]) li ...

最新文章

  1. boot访问resources下边的图片_SpringBoot系列之JDBC数据访问
  2. 十五个常用的 Laravel 集合(Collection)
  3. 好久没有冒泡了,今天花点时间总结下最近做的。
  4. Redis info参数总结
  5. 【Flink】Buffer pool is destroyed
  6. php注入类,简单实用的PHP防注入类实例_PHP
  7. python学习===复制list
  8. 动软.Net代码自动生成器下载
  9. python画素描画_画画了,画画了,几行Python就成一幅素描画
  10. VMware16阿里云盘
  11. 相机参数(焦距)初始化对三维重建过程的影响
  12. dtools: error while loading shared libraries: libicui18n.so.55: cannot open shared object file
  13. 获取手机或电脑GPS位置信息(定位平台)
  14. 抛砖引玉系列:Android简易实现录屏软件。
  15. 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
  16. SnnGrow快讯:Apple Books上线AI读书功能、有声书市场将迎来颠覆时刻、刚过7岁生日的OpenAI估值达到290亿美元、跻身全球独角兽排行榜前20、中国航天2023全年发射将再破60次
  17. 纯前端读取excel (SheetJS js-xlsx.js框架)
  18. QTreeWidget使用整理
  19. android 点击返回键home键,appium怎么按下系统按键?如按下返回键、home键等等
  20. 20175227张雪莹 2018-2019-2 《Java程序设计》第三周学习总结

热门文章

  1. 波普艺术比较适合团队活动宣传海报设计风格,除了波普还有其他哪些艺术流派值得我们学习呢?
  2. linux进程间通信:system V 信号量和共享内存实现进程间同步
  3. awk5.0 — awk模式之一
  4. Android13.9.15
  5. Javascript中二进制数据处理方法
  6. C#获取文件的当前路径
  7. python数据结构与算法:队列与双端队列
  8. Asp.net 不使用SQLDMO实现数据库备份和还原
  9. 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论
  10. Spring MVC 4