opencv01 相对完整的编译opencv3.3.0 win版本
来源:互联网 发布:软件平台架构 编辑:程序博客网 时间:2024/05/21 10:40
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.0CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib;JAVA_HOME=d:\install\java\jdk1.8.0_121PATH=%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.exePYTHON3_INCLUDE_DIR=c:/Python36/includePYTHON3_INCLUDE_DIR2=PYTHON3_LIBRARY=c:/Python36/libs/python3.libPYTHON3_LIBRARY_DEBUG=c:/Python36/libs/python3_d.libPYTHON3_NUMPY_INCLUDE_DIRS=c:/Python36/Lib/site-packages/numpy/core/includePYTHON_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:\gitgit clone https://github.com/opencv/opencv.gitcd d:\git\opencvgit checkout -b b3.3.0 3.3.0#git submodule update --init --recursivecd d:\gitgit clone https://github.com/opencv/opencv_contrib.gitcd d:\git\opencv_contribgit 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.txtCall 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配置项
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
项目的调试项工作目录设置为
运行效果如下:
Attempting to upgrade input file specified using deprecated V1LayerParameter: bvlc_googlenet.caffemodelSuccessfully upgraded file specified using deprecated V1LayerParameterNet Outputs(1):probBest 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生成的安装包如下:
- opencv01 相对完整的编译opencv3.3.0 win版本
- opencv01-像素的访问
- 自己编译的win版本hadoop
- 编译OpenCV3.3.1 +contrib+vs2013+x86版本
- win tc的一个完整代码,编译正确,但黑屏,请高手帮忙指导你一下!!!
- windows下cmake编译opencv3.2+opencv_contrib完整过程
- vs2015配置opencv3.3.0版本
- SOCKET_PRGM--Lin/Win条件编译版本
- Opencv3.0+opencv_contrib_lib +VS2013(编译)+CMake-gui(最近的版本都可以)
- VS2015使用opencv3.2.0版本,支持X64位编译的配置
- Opencv3.0+opencv_contrib_lib +VS2013(编译)+CMake-gui(最近的版本都可以)
- OpenCV3的GPU模块编译
- 关于OpenCV源码的查看&&&openCV3.2配置x86版本&&用CMake编译其他vs版本的opencv
- 一个相对完整的inno setup 脚本
- vs2013编译win-32位下的libevent-2.0.21-stable,debug版本
- 树莓派编译安装完整版本ROS
- OpenCV3编译
- MAC 10.10.5编译opencv3.0(java版本)
- 直方图均衡化
- Python——安装Scrapy时出现各种错误
- hdu2825-(AC自动机+状压DP)
- Java开发牛人十大必备网站
- Ubuntu问提记录
- opencv01 相对完整的编译opencv3.3.0 win版本
- Weave 网络结构分析
- 使用Spring进行面向切面编程(AOP)
- Qt在main()函数中创建对象,不主动析构的处理
- HDU
- android运营商和网络类型分析
- 背景 盒模型
- Android程序的安全系统 apk获得root权限
- centos7删除启动引导无用菜单项