java调用opencv的流程

工作上有时候需要通过java调用opencv批量处理图像或视频。

1.下载安装包

在官方网站下载opencv的程序包,在开发环境一般使用的是windows版的程序包。
https://opencv.org/releases/
在这里插入图片描述
注意:最新版本的用的开发语言是JAVA11版本以上,若还在使用JAVA8最好下载4.6.0及以下版本。

opencv安装包在github的下载链接比较慢,可以百度其他国内网站进行下载。

这里我使用的是opencv4.4.0版本。

在这里插入图片描述

2.引入到项目工程文件

解压缩后再opencv\build\java下有我们需要的jar包和dll文件。

在这里插入图片描述
打开IDEA的项目结构引入刚解压的opencv的jar包
在这里插入图片描述
接着,将opencv_java440.dll的库文件加入到jar包中。

在这里插入图片描述
在这里插入图片描述

编写测试文件,可以看到opencv已经引入成功。

在这里插入图片描述
测试如下:

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

public class Test {
    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat eye = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println(eye.dump());
    }
}

在这里插入图片描述

3.构建到maven仓库中

前面只是能在java中使用opencv了,但是若是需要打包成jar包,则需要构建maven包。

如图,在resouces文件夹下新建lib文件夹,编写批处理命令maven-init.cmd将jar包记录到本地maven仓库,同时将opencv-440.jar文件改名为opencv-4.4.0.jar文件也放在此目录中。
在这里插入图片描述

maven-init.cmd文件

@echo off
chcp 65001
echo ****************************************
echo 安装SDK依赖包到本地maven仓库
echo ****************************************

call mvn install:install-file -DgroupId=org -DartifactId=opencv  -Dversion=4.4.0 -Dpackaging=jar -Dfile=opencv-4.4.0.jar

pause

在pom.xml文件中引入maven依赖

<dependency>
    <groupId>org</groupId>
    <artifactId>opencv</artifactId>
    <scope>compile</scope>
    <version>4.4.0</version>
</dependency>

4.处理视频文件

当程序需要处理视频文件时,或者jar包时在生产环境运行时,有个点需要注意。

在jdk的jre/bin目录需要加入一个dll文件,分别为opencv_videoio_ffmpeg440_64.dll的文件,否则程序运行会报错,找不到library路径。因为处理视频使用了ffmpeg的插件。

在这里插入图片描述

 //打开视频流
VideoCapture capture = new VideoCapture();
try {
    capture.open(filename);
    if (!capture.isOpened()) {
        System.out.println("无法打开视频流: " + filename);
    }
} catch (Exception e) {
    System.out.println("打开视频流时发生异常: " + e.getMessage());
    e.printStackTrace();
}

没有ffmpeg的插件的话,是无法打开视频流的。报错如下:

[ERROR:0@0.286] global cap.cpp:166 cv::VideoCapture::open VIDEOIO(CV_IMAGES): raised OpenCV
exception: OpenCV(4.4.0) D:\opencv\modules\videoio\src\cap_images.cpp:267:error: (-215:Assertion failed) number < max_number in function ‘cv::icvExtractPattern’

这个坑我也是找遍全网,花了一天时间才解决的。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java项目中使用OpenCV,您需要完成以下步骤: 1. 下载OpenCV库文件。您可以从OpenCV官网下载适合您操作系统和IDE的库文件。 2. 将OpenCV库文件添加到Java项目中。有两种方法可以实现: - 将OpenCV库文件添加到您的系统库中,并将其添加到Java库路径中。这样可以在Java代码中使用`System.loadLibrary("opencv_java4")`加载OpenCV库。如果您使用的是Eclipse或IntelliJ等IDE,也可以将OpenCV库文件添加到项目库中。 - 将OpenCV库文件添加到Java项目中,并在代码中使用`System.load("path/to/opencv_library.dll")`加载OpenCV库。 3. 配置Java开发环境。在项目中添加JavaDoc以便获得OpenCV API的文档,并设置Java编译器选项以使用OpenCV类和方法。 4. 在Java代码中使用OpenCV类和方法。您可以使用Java的API文档来了解OpenCV的类和方法,并使用它们来实现您的应用程序。 下面是一个简单的Java OpenCV示例程序,它读取一张图像并将其显示在窗口中: ```java import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.opencv.highgui.HighGui; public class OpenCVExample { public static void main(String[] args) { // Load the OpenCV library System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // Read an image Mat img = Imgcodecs.imread("path/to/image.png"); // Convert the image to grayscale Mat grayImg = new Mat(); Imgproc.cvtColor(img, grayImg, Imgproc.COLOR_BGR2GRAY); // Display the image HighGui.imshow("Image", grayImg); HighGui.waitKey(); } } ``` 希望这些步骤和示例程序可以帮助您配置Java OpenCV并开始使用它!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值