在Java中使用OpenCV实践

 更新时间:2025年07月25日 14:28:43   作者:ZYH_Victor  
用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探索AI结合应用

前言

最近工作上有个项目,涉及到一些有关图像的操作,正好得知有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模型一起使用,应该挺好玩的,后面有时间的话我也会去研究研究,玩一玩。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • kotlin改善java代码实例分析

    kotlin改善java代码实例分析

    我们给大家整理了关于kotlin改善java代码的相关实例以及操作的详细方法,有需要的读者们参考下。
    2018-03-03
  • Java入门交换数组中两个元素的位置

    Java入门交换数组中两个元素的位置

    在Java中,交换数组中的两个元素是基本的数组操作,下面我们将详细介绍如何实现这一操作,以及在实际应用中这种技术的重要性,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • linux部署springBoot项目的脚本问题

    linux部署springBoot项目的脚本问题

    这篇文章主要介绍了linux部署springBoot项目的脚本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Java利用条件运算符的嵌套来完成学习成绩的划分

    Java利用条件运算符的嵌套来完成学习成绩的划分

    这篇文章主要介绍了Java利用条件运算符的嵌套来完成学习成绩的划分,需要的朋友可以参考下
    2017-02-02
  • 详解消息队列及RabbitMQ部署和使用

    详解消息队列及RabbitMQ部署和使用

    消息队列是最古老的中间件之一,从系统之间有通信需求开始,就自然产生了消息队列。本文告诉什么是消息队列,为什么需要消息队列,常见的消息队列有哪些,RabbitMQ的部署和使用
    2021-09-09
  • java实现打砖块小游戏

    java实现打砖块小游戏

    这篇文章主要为大家详细介绍了java实现打砖块小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • idea打开运行配置java web项目的全过程

    idea打开运行配置java web项目的全过程

    这篇文章主要给大家介绍了关于idea打开运行配置java web项目的相关资料,有些时候我们用IDEA跑之前用eclipse中运行的项目的时候,总是不止所措,要不就是只展示html,要不就是不能部署成功,需要的朋友可以参考下
    2023-08-08
  • java获取日期之间天数的方法

    java获取日期之间天数的方法

    这篇文章主要介绍了java获取日期之间天数的方法,涉及java针对日期的转换与数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 使用java代码实现一个月内不再提醒,通用到期的问题

    使用java代码实现一个月内不再提醒,通用到期的问题

    这篇文章主要介绍了使用java代码实现一个月内不再提醒,通用到期的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java 10 局部变量类型推断浅析

    Java 10 局部变量类型推断浅析

    这篇文章主要介绍了Java 10 局部变量类型推断浅析,Java 10 引进一种新的闪闪发光的特性叫做局部变量类型推断。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06

最新评论