Java 整合 OpenCV4.4 之项目安装测试 教程 (一)

一、opencv 简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Java、Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法(百度百科)。

opencv采用C语言进行优化,而且,在多核机器上面,其运行速度会更快。它的一个目标是提供友好的机器视觉接口函数,从而使得复杂的机器视觉产品可以加速面世。该库包含了横跨工业产品检测、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。
      同时,由于计算机视觉与机器学习密不可分,该库也包含了比较常用的一些机器学习算法。或许,很多人知道,图像识别、机器视觉在安防领域有所应用。但,很少有人知道,在航拍图片、街道图片(例如google street view)中,要严重依赖于机器视觉的摄像头标定、图像融合等技术。
      近年来,在入侵检测、特定目标跟踪、目标检测、人脸检测、人脸识别、人脸跟踪等领域,opencv可谓大显身手,而这些,仅仅是其应用的冰山一角。

二、opencv 安装

  1. 在 Windows 环境下 安装 OpenCV ,官网下载 OpenCV:OpenCV 官网 
  2. 点击  Releases 选项下载 OpenCV ,如果下载过慢 可以使用迅雷下载。

     

 

 

3. 根据自己的需求下载 不同的版本,本教程使用 OpenCV -4.4.0 

4. 下载成功 ,双击 opencv-4.4.0-vc14_vc15.exe 即可,安装导致的目录。

5.  进入到 \opencv\build目录中,由于本项目用于java 集成,因此 进入java 目录。

进入 java 目录如下,根据自己的系统 ,选择不同的 位数:

三、搭建 java 项目

1. 在 idea中新建 Springboot 项目,详细步骤不再赘述,结构入下:

四、 java 项目整合 OpenCV

1. java项目引入 opencv.jar 的 方式如下:

第一种方式:  在项目的 resource 下新建lib 目录,把 步骤 二 安装的 opencv 放到 lib目录下:

a.  在pom.xml 中 引入 opencv-440.jar 的jar 包。

        <!-- 第一种方法: 引入 resources lib 下的 OpenCV jar包 -->
        <dependency>
            <groupId>org</groupId>
            <artifactId>opencv</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}\src\main\resources\lib\opencv-440.jar</systemPath>
        </dependency>

b. 启动类中 ,修改 SpringApplication.run() 的方法,使用  headless 的模式,否则程序 报错。

Headless模式是在缺少显示屏、键盘或者鼠标时的系统配置。听起来不可思议,但事实上你可以在这中模式下完成不同的操作,甚至是用图形数据也可以。

@SpringBootApplication
public class OpenCVApplication {
    public static void main(String[] args) {
//        SpringApplication.run(OpenCVApplication.class,args);
        SpringApplicationBuilder builder = new SpringApplicationBuilder(OpenCVApplication.class);
        builder.headless(false).web(false).run(args);
    }
}
    然后在ide 的run--->VM Options里加上一句:   -Djava.awt.headless=false

c. 在 程序中 通过 类加载器 引入 opencv_java440.dll   。

  @Test
    public void test02(){
        URL url = ClassLoader.getSystemResource("lib/opencv_java440.dll");
        System.load(url.getPath());
//        System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
        Mat mat = Mat.eye(4,4,CvType.CV_8UC1);
        System.out.println(mat.dump());
    }

d.执行代码进行测试,结果如下:

 

 

第二种方式: 

1. 把 opencv-440.jar 的jar 包 通过idea 的 Modules 引入到项目中。

在 vm options 中配置 dll文件的绝对路径。

2.将 opencv_java440.dll 复制到 JAVA_HOME\jre\bin 目录下,如图:

3.java 程序测试

3.1 还原启动类:

@SpringBootApplication
public class OpenCVApplication {
    public static void main(String[] args) {
        SpringApplication.run(OpenCVApplication.class,args);
//        SpringApplicationBuilder builder = new SpringApplicationBuilder(OpenCVApplication.class);
//        builder.headless(false).web(false).run(args);
    }
}

3.2 测试 opencv ,代码如下

    @Test
    public void test02(){
//        URL url = ClassLoader.getSystemResource("lib/opencv_java440.dll");
//        System.load(url.getPath());
        System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
        Mat mat = Mat.eye(4,4,CvType.CV_8UC2);
        System.out.println(mat.dump());
    }

结果如下:

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值