opencv01 相对完整的编译opencv3.3.0 win版本

01 基本环境

opencv3.3.0已经于20170803外放release版本,把dnn模块移入主版本中,并且配备了7个dnn例程。opencv3.3.0的dnn模块,目前已经支持caffe/tensorflow/Torch。
opencv3.3.0目前已经很好的支持c++、java和python。如果要研究opencv,最好自己编译opencv源码,并且跑测试程序(tests)和例程(samples)。这样,会比看blog效果明显。
编译opencv的源码,建议使用git下载源码,切换稳定分支或者tag。有代码提交记录总是好的。
编译工具,需要git、cmake、vs2015。
java sdk:如果需要生成opencv的java接口。
matlab:如果需要生成opencv的matlab接口。
python3:如果需要生产opencv的python3接口。
python2:不建议在windows上使用python2接口。
perl:如果需要使用PACKAGE工程生成opencv的安装包。需要perl工具。
caffe:可选,在没选择cmake中的caffe参数时,也能编译成功。
自己编译,不要选择Build_opencv_world,这个是把所有项目编译为一个dll和lib。开发环境和调研环境使用Build_opencv_world无所谓,正式发布环境,建议不要使用Build_opencv_world,而是自己选择需要的dll和lib,减少发布包的体积。
ANT_HOME=d:\install\eclipse\apache-ant-1.10.0
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib;
JAVA_HOME=d:\install\java\jdk1.8.0_121
PATH=%PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin
Build_opencv_matlab是生成opencv的cv.m(matlab)接口的选项,需要正确设置matlab的环境变量。本实验安装了matlab2016b。
PATH=%PATH%;d:\install\MATLAB\R2016b\runtime\win64;d:\install\MATLAB\R2016b\bin;d:\install\MATLAB\R2016b\polyspace\bin

Build_opencv_python3是生成cv2.cp36-win_amd64.pyd的python3接口。可以正常生成。但运行PACKAGE生成nsis安装包时会报错。如果要生成python3的opencv接口,需要正确配置python3的环境变量。建议安装python3的debug包。这样,编译debug版本的时候,会顺利些。

PATH=%PATH%;C:\Python36\Scripts\;C:\Python36\

同时需要在cmake-gui中配置python3参数。

PYTHON3_EXECUTABLE=c:/Python36/python.exe
PYTHON3_INCLUDE_DIR=c:/Python36/include
PYTHON3_INCLUDE_DIR2=
PYTHON3_LIBRARY=c:/Python36/libs/python3.lib
PYTHON3_LIBRARY_DEBUG=c:/Python36/libs/python3_d.lib
PYTHON3_NUMPY_INCLUDE_DIRS=c:/Python36/Lib/site-packages/numpy/core/include
PYTHON_PACKAGES_PATH=c:/Python36/Lib/site_packages

BUILD_DOCS编译doxygen文档。需要安装windows版本的doxygen。本实验编译可以成功,但是在install的时候,会出现一个错误。不过不影响使用。生成的完整文档在buildpath\doc\doxygen\html下,打开index.html即可。强烈建议编译该选项。可以考虑生成文档后,拷贝保存,在取消该选项。
在运行install时的错误:

错误      Problems running bibtex. Verify that the command 'perl --version' works from the command line. Exit code: 2 doxygen D:\git\opencv\build\v3.3.0\x64\doc\CUSTOMBUILD  1

因为我本地path环境变量中配置了caffe的install路径D:\git\DeepLearning\caffe\build\x64\install\bin,cmake会自动识别出caffe的存在,并且出现变量:

OPENCV_DOWNLOAD_PATH=d:/git/opencv/.cache

如果出现如下错误:

# D:\git\opencv\build\v3.3.0\x64\modules\python3\cmake_install.cmake
# 提示这个文件的38行有问题
ABSOLUTE path INSTALL DESTINATION forbidden (by caller):

可以在这个文件前面加入如下4行:

set(CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION 0)
set(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION 0)
set(CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION 0)
set(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION 0)

这里写图片描述

02 下载3.3.0版本代码

下载源码,并切换到指定的3.3.0版本。

cd d:\git
git clone https://github.com/opencv/opencv.git
cd d:\git\opencv
git checkout -b b3.3.0 3.3.0
#git submodule update --init --recursive
cd d:\git
git clone https://github.com/opencv/opencv_contrib.git
cd d:\git\opencv_contrib
git checkout -b b3.3.0 3.3.0
#git submodule update --init --recursive

03 cmake配置

03.01 下载文件处理

配置CMake的源码路径和build路径
源码路径:D:/git/opencv
编译文件路径:D:/git/opencv/build/v3.3.0/x64
点击[Add Entry]添加cmake参数OPENCV_EXTRA_MODULES_PATH

# 注意,需要指定到opencv_contrib的modules目录
OPENCV_EXTRA_MODULES_PATH=d:/git/opencv_contrib/modules

选择 vs2015 x64版本。

这里写图片描述

如果所示,点击[Finish]按钮后,在生成配置的过程中,会下载一些文件,根据自己的网络情况。下载可能失败。如果尝试3-5次后,依然失败。需要手动下载这些文件。根据cmake日志提供的错误信息,修改D:\git\opencv\cmake\OpenCVDownload.cmake文件。在opencv\cmake\OpenCVDownload.cmake中的download 中加入日志,显示下载文件的具体url路径,在153行下面,如图:

    ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")
    message("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")

这里写图片描述

加入日志后,在点击[Configure]按钮,会出现如下错误提示:

#cmake_download "D:/git/opencv/cache/ffmpeg/0dc72775ec3c14d1e049f51dc1280dbb-opencv_ffmpeg_64.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a86e53eb35737a50e5100e26af3aa1d29e810890/ffmpeg/opencv_ffmpeg_64.dll"

#"D:/git/opencv/cache/ffmpeg/0dc72775ec3c14d1e049f51dc1280dbb-opencv_ffmpeg_64.dll"是下载后的保存文件名称。
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/a86e53eb35737a50e5100e26af3aa1d29e810890/ffmpeg/opencv_ffmpeg_64.dll"是需要下载文件的url。
#手动下载这些下载超时的文件,放入指定目录,即可。

CMake Warning at cmake/OpenCVDownload.cmake:189 (message):
FFMPEG: Download failed: 28;"Timeout was reached"

For details please refer to the download log file:

D:/git/opencv/build/v3.3.0/x64/CMakeDownloadLog.txt

Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:225 (download_win_ffmpeg)
CMakeLists.txt:605 (include)

#cmake_download "D:/git/opencv/cache/ippicv/75060a0c662c0800f48995b7e9b085f6-ippicv_2017u2_win_intel64_20170418.zip" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/ippicv_2017u2_win_intel64_20170418.zip"

03.02 cmake配置项

opencv cmake配置项01
opencv cmake配置项02
opencv cmake配置项03
opencv cmake配置项04
opencv cmake配置项05
opencv cmake配置项06
opencv cmake配置项07

04 vs2015工程

生产439个工程,不包括python3接口和docs项目。
ALL_BUILD、INSTALL、PACKAGE、uninstall都可以正常运行,RUN_TESTS有一部分会失败(不配置,直接运行时, fuzzy处,卡死)。
这里写图片描述

samples目录下面的测试工程很值得研究,
samples/cpp项目有很多老的人脸识别demo。比如:facedetect等。
samples/dnn是3.3.0新引入的7个dnn相关的例子。
可以参考官网的文档http://docs.opencv.org/master/d5/de7/tutorial_dnn_googlenet.html。运行samples\dnn\() caffe_googlenet例程。

05 运行caffe_googlenet例程

vs2015切换到debug环境。
vs2015设置项目() caffe_googlenet为启动项。
参考官网文档:http://docs.opencv.org/master/d5/de7/tutorial_dnn_googlenet.html
下载图片space_shuttle.jpg
2个文件
bvlc_googlenet.prototxt
bvlc_googlenet.caffemodel
保存到debug的输出目录:D:\git\opencv\build\v3.3.0\x64\bin\Debug
() caffe_googlenet项目的调试项工作目录设置为 (OutDir)>>>  (OutDir)
这里写图片描述

运行效果如下:

Attempting to upgrade input file specified using deprecated V1LayerParameter: bvlc_googlenet.caffemodel
Successfully upgraded file specified using deprecated V1LayerParameter

Net Outputs(1):
prob
Best class: #812 'space shuttle'
Probability: 99.9804%
Time: 403.647 ms (average from 10 iterations)

这里写图片描述

06 生成的文档

Build_Docs选项产生内容在D:\git\opencv\build\v3.3.0\x64\doc\doxygen\html目录下。找到html下面的index.html,可以本地阅览。
这里写图片描述

INSTALL生成目录在D:\git\opencv\build\v3.3.0\x64\install目录,内容如下:
这里写图片描述

PACKAGE生成的安装包如下:
这里写图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值