编译 OpenCV3.4.1 生成 C 库和 Java 库的方法
1、安装前准备
在 OpenCV3.x 构建的自带的库中不包括需要授权使用的算法,为此,需要构建自己的完
整的 OpenCV 库。为从 OpenCV 源代码编译生成 C/C++库、Java 库,需要安装如下工具:
(1)Java JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ,
需要配置 JAVA_HOME 指向 JDK 的安装路径,例如:C:\Program Files\Java\jdk1.8.0_144。
(2)Ant
https://ant.apache.org/bindownload.cgi
(3)Python,3.x 和 2.x 都需要安装
https://www.python.org/ftp/python/3.6.5/python-3.6.5-amd64.exe
https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi
(4)Visual Studio 2017 专业版
https://www.visualstudio.com/downloads/
(5)CMake
https://cmake.org/download/
(6)安装 nsis
http://nsis.sourceforge.net/Download
2、下载和解压 OpenCV 和 OpenCV Contrib
(1)下载 OpenCV
https://github.com/opencv/opencv/releases,选择“Source code”。
(2)下载 OpenCV Contrib
https://github.com/opencv/opencv_contrib/releases,选择“Source code”。
(3)将 OpenCV 和 OpenCV Contrib 解压到某个目录。
3、使用 CMake 配置生成的库所应包含的内容
(1)运行 CMake-gui 并做好基本配置
其中的 source 路径指向解压后的 “opencv-3.4.1”,build 路径可指向自己建的一个 “build”
文件夹。设置好路径后,点击左下角的 Configure 按钮,弹出窗口,如下所示:
注意,我们这里的“Visual Studio 14 2015 Win64”应该是“Visual Studio 15 2017 Win64”。点
击 Finish 按钮,继续,此时主界面的 Configure 按钮变为 Stop,表示配置进行中。如遇到问
题,先检查错误信息;然后,点击 File -> Delete Cache,退出 cmake-gui,并将 build 文件夹
内的内容清空,再重复上面的步骤。
等 Configure 依次结束后,如果 cmake 的主界面仍有红色区域,则再次点击 Configure
进行配置,直到红色区域完全消失。
下图是 Configure 完成后的界面,红色消失,只剩白色的区域:
在上面的配置过程中,一定要确保 ant 的路径正确:指向 ant.bat。如上图的 ANT_EXECUTABLE-
NOTFOUND 是不对的。
(2)配置 OpenCV Contrib
找到 Name 下的 OPENCV_EXTRA_MODULES_PATH,为其设置 opencv_contrib-3.4.1 的路
径 ,精确到/modules 目录。
再次点击 Configure 进行配置,在配置中,几个关键的配置选项:
BUILD_SHARED_LIBS:一定不能选中;
BUILD_JAVA:一定要选中;
BUILD_FAT_JAVA_LIB:一定要选中;
OPENCV_NO_FREE:选中,可以将 SIFT、SURF 之类的专利算法纳入库中。
可能需要 Configure 两三次之后,红色区域才能完全消失。最后,点击 Generate,出现
“Generating done”则意味着 cmake 的工作结束了。
4、用 Visual Studio 2017 professional 生成相关库
进入到生成的 build 目录下,找到 OpenCV.sln,使用 VS 2017 打开。在“解决方案”中找
到 INSTALL,在 Release 模式下,根据系统选择 x86 或 x64,右键->生成:
这个生成过程可能很长,1 小时左右,结束后,右击“PACKAGE”,点击“生成”,即可生成
Java 相关的库:
(1)opencv-341.jar
路径:C:\Wushaogen\Temp\OpenCV3.4.1\build\install\java
(2)opencv_java341.dll
路径:C:\Wushaogen\Temp\OpenCV3.4.1\build\install\java
(3)opencv_ffmpeg341_64.dll
路径:C:\Wushaogen\Temp\OpenCV3.4.1\build\bin\Release