## 基础概念
- OpenCV是一个基于BSD许可（开源）发行的跨平台计算机视觉和机器学习软件库；轻量级而且高效，由一系列C函数和少量C++类构成；该库的核心是用C ++编写的
- 本项目是java语言项目，其本质是通过java调用opencv c++的接口实现的。
- 本项目，提供了两种方式去调用c++的接口，
  - 1、通过javacpp调用；这种方式是原版EasyPR-Java项目的使用方式，在这里小编更新了javacpp版本，以及切换了依赖包的引用方式为maven pom引入
  - 2、通过opencv官方提供的java 语言的api调用，个人推荐这种方式调用，毕竟是官方的版本
   
      以上两种方式，本质上都是java调用c++的接口实现，具体可以自行了解一下jni或者jna，这里不做深入介绍了


## 开发环境搭建

### 软件版本

- jdk 1.8.61+
- maven 3.0+
- opencv 4.0.1 ； javacpp1.4.4；opencv-platform 4.0.1-1.4.4
- spring boot 2.1.5.RELEASE

### 操作步骤 

- 安装jdk，不会的自行百度
- 安装maven，不会的自行百度
- 将项目导入eclipse，不会的自行百度，其他的开发工具的自行百度
- **javacpp方式调用：**
  - 添加pom依赖坐标：
     ```xml
        <dependency>
            <groupId>org.bytedeco.javacpp-presets</groupId>
            <artifactId>opencv</artifactId>
            <version>4.0.1-1.4.4</version>
        </dependency>
        <!-- 引入这个包，会把所有平台的依赖包都导入，大小有200+M，实际上用不到 -->
        <!-- 只需要从lib目录引入对应的操作系统版本包(lib/opencv-4.0.1-1.4.4-windows-x86_64.jar)即可 -->
        <!-- <dependency>
            <groupId>org.bytedeco.javacpp-presets</groupId>
            <artifactId>opencv-platform</artifactId>
            <version>4.0.1-1.4.4</version>
        </dependency> -->
     ```
  - 将 /lib/opencv-4.0.1-1.4.4-windows-x86_64.jar 依赖包添加到build path；也可以在pom文件中，使用opencv-platform，增加exclusion标签排出多余的包
  - maven update 一下项目即可
  - 如果不需要这种方式的实现，删除多余的代码即可
  
- **官方的api调用：**
  - https://opencv.org/releases/ 官方下载对应版本的安装包；傻瓜式安装，不会的自行百度
  - 添加user library 方法：https://blog.csdn.net/qq_32447301/article/details/78494913
  - **注意：** 需要将opencv安装目录\build\java\x64目录下dll文件，拷贝到\build\x64\vc14\bin目录下，其中x64、vc14根据实际版本自行调整
  - 如果不需要这种方式的实现，删除多余的代码即可



