首页 > 基础资料 博客日记
在Java中使用OpenCV
2024-10-01 20:00:06基础资料围观392次
# 前言
最近工作上有个项目,涉及到一些有关图像的操作,正好得知有OpenCV这一个开源库。在网上查找了一些资料,发现OpenCV有很多妙用,例如人脸识别、车牌识别等,甚至有大佬能用它来做自动驾驶。感觉挺有意思的,小记一下。
# 一 、OpenCV
1.简介
OpenCV (开源计算机视觉库) 是一个开源的BSD许可库,其中包含数百种计算机视觉算法。它为开发者提供了Java、C++和Python接口,支持Windows、Linux和Android。
OpenCV被广泛应用于各种领域,例如安防监控、智能驾驶、机器人视觉、虚拟现实等。
官网文档地址:OpenCV: OpenCV Tutorials
参考教程:OpenCV官方文档_w3cschool
2.下载与安装
下载地址:Releases - OpenCV
根据自己需要,选择版本以及对应的平台,这里版本选4.10.0,平台选Windows。
下载后是一个exe,双击安装即可。
3.目录说明
安装完成后的目录如下:
build为构建后的文件,sources是OpenCV的源代码,我们进入build:
因为我们是java开发,所以进入java文件夹,其中有个opencv-4100.jar,这个是我们开发中需要用到的jar包。x64与x86代表不同的系统,我们是在x64系统中使用,所以选择x64,打开文件夹后里面有一个dll文件,这也是我们开发中需要调用的库文件。
# 二、在Java项目中使用
我使用的开发软件是 IntelliJ IDEA,因此这里将展示在IDEA中集成OpenCV。
1.打开或新建一个项目
2.使用快捷键 Shift + Ctrl + Alt + S 打开项目设置,或鼠标右击项目,选择 “打开项目设置”
3.选择 “模块” → 选中项目 → “依赖” → “+(添加)” → “1.JAR或目录...” → 找到下载的OpenCV-4100.jar → "确定"
4.找到刚刚添加进来的jar包,"右建" → "编辑" → "+(添加)" → 找到下载的opencv_java4100.dll → "确定"
以上步骤完成后,就可以开始编码了。
需要注意的是,如果maven依赖有变更,OpenCV需要重新导入,目前我还没发现解决方法,若有大佬能解决这个问题,恳请告知,小弟不胜感激!
# 三 、测试
1.测试代码
这里运行一个生成灰度图的测试代码,测试是否成功导入OpenCV。
package org.example;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class OpenCV_test {
public static void main(String[] args) {
//加载 opencv_javaXX.dll
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//测试图片地址
String imgPath = "path/path/xxxx.jpg";
//读取图片
Mat img = Imgcodecs.imread(imgPath);
//生成灰度图
Mat gray = new Mat();
Imgproc.cvtColor(img,gray, Imgproc.COLOR_BGR2GRAY);
//保存图片
Imgcodecs.imwrite("./result.png", gray);
}
}
2.测试结果


# 四、完成
至此,Java项目已成功导入OpenCV,听说OpenCV还能结合AI模型一起使用,应该挺好玩的,后面有时间的话我也会去研究研究,玩一玩。
第一次在博客上发布文章,可能会有勘误或写的不好的地方,欢迎各位大佬指正!也欢迎各位同道互相学习交流。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?