Java如何配置OpenCV依赖

一.前言

JavaWeb在物联网项目中的优势凸显,其强大的开发框架简化了开发流程,跨平台性方便在不同设备上部署,安全性机制有助于保护敏感信息,同时多线程支持和性能优化提高了系统的高效处理能力。然而OpenCV常常在c++、Python中被使用,事实上OpenCV也给Java提供了解决方案。

二.下载OpenCV安装包

Releases - OpenCV链接里是OpenCV发行的版本,本文采用时下最新的4.9.0,注意版本号,因为这将在下面的依赖中进行修改。

根据电脑操作系统下载对应的版本。

三.将jar包和ddl文件导入到项目模块中

找到opencv/build/java目录下的opencv-490.jar

再找到opencv/build/java/x64目录下的opencv_java490.dll

在模块下建立一个包lib粘贴这两个文件

四.引入依赖

   org.opencv opencv 4.9.0 system ${basedir}/lib/opencv-490.jar  

这里的版本依据第一步下载的OpenCV版本

五.测试

public class Main {
    static {
        // 加载本地OpenCV库
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }
    public  static void main(String args[]) {
        // 读取图像文件并存储在src变量中作为输入图像
        Mat src = Imgcodecs.imread("C://Users//Yemax//Pictures//Screenshots//1.png");
        // 创建一个空的Mat对象dst,用于存储经过处理调整后的图像
        Mat dst = new Mat();
        if (src.channels() == 3) {
            // 将RGB图像转为灰度图像
            Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2GRAY);
        } else {
            System.out.println("图像不是BGR格式");
        }
        // 使用HighGui库显示原始图像和修改后的图像
        HighGui.imshow("原图", src);
        HighGui.imshow("新图", dst);
        // 等待用户关闭窗口 或 等待用户按下任意键继续程序执行
        HighGui.waitKey(0);
        // 释放内存
        src.release();
        dst.release();
    }
}

六.效果展示

七.参考文章

Java使用OpenCV进行图像操作-阿里云开发者社区 (aliyun.com)