windows10
vs2013
OpenCV3.1.0
cmake
Cmake官网,下载对应版本的Cmake
下载后解压可得到如下文件:
然后把Cmake路径下的bin文件夹路径添加到电脑环境变量中,即可使用Cmake
这里我们使用源码安装的方式,下载对应的OpenCV3.1.0 Sources文件
将下载后的OpenCV压缩包解压,可以看如下文件目录:
然后我们就需要开始编译OpenCV,打开cmd,然后输入 cmake-gui
然后回车就可以直接打开Cmake了,然后我们就需要进行如下配置:
如上图步骤:
1)首先选择source code的路径,就是上面的opencv-3.1.0/opencv-3.1.0
2)手动在opencv-3.1.0里面建一个名字为 build 的文件夹,把 build 文件夹的路径加到这步
3)点击 Configue
4)就会弹出一个选择编译器的界面,选择自己对应的VS版本就行了。
5)点击Finish
在编译的过程中ffmpeg,以及ippicv下载失败,然后我们可以手动下载并放到对应的文件夹中即可:
ffmpeg
首先我们进入到ffmpeg的下载目录中看
其中两个文件夹分别下载了文件:opencv_ffmpeg_64.dll
和 ffmpeg_version.cmake
,但未完全下载
然后我们通过用记事本打开 ~\opencv-3.1.0\3rdparty\ffmpeg\ffmpeg.cmake
文件,如下:
# Binary branch name: ffmpeg/master_20150703
# Binaries were created for OpenCV: e379ea6ed60b0caad4d4e3eea096e9d850cb8c86
set(FFMPEG_BINARIES_COMMIT "8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb")
set(FFMPEG_FILE_HASH_BIN32 "89c783eee1c47bfc733f08334ec2e31c")
set(FFMPEG_FILE_HASH_BIN64 "35fe6ccdda6d7a04e9056b0d73b98e76")
set(FFMPEG_FILE_HASH_CMAKE "8606f947a780071f8fcce8cbf39ceef5")
set(FFMPEG_DOWNLOAD_URL ${OPENCV_FFMPEG_URL};$ENV{OPENCV_FFMPEG_URL};https://raw.githubusercontent.com/Itseez/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/)
ocv_download(PACKAGE opencv_ffmpeg.dll
HASH ${FFMPEG_FILE_HASH_BIN32}
URL ${FFMPEG_DOWNLOAD_URL}
DESTINATION_DIR ${CMAKE_CURRENT_LIST_DIR})
ocv_download(PACKAGE opencv_ffmpeg_64.dll
HASH ${FFMPEG_FILE_HASH_BIN64}
URL ${FFMPEG_DOWNLOAD_URL}
DESTINATION_DIR ${CMAKE_CURRENT_LIST_DIR})
ocv_download(PACKAGE ffmpeg_version.cmake
HASH ${FFMPEG_FILE_HASH_CMAKE}
URL ${FFMPEG_DOWNLOAD_URL}
DESTINATION_DIR ${CMAKE_CURRENT_LIST_DIR})
include(${CMAKE_CURRENT_LIST_DIR}/ffmpeg_version.cmake)
即可查看到我们的下载链接,https://raw.githubusercontent.com/Itseez/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/
其中${FFMPEG_BINARIES_COMMIT}
用 8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb
替换,然后组合即可得到我们的 opencv_ffmpeg.dll
下载链接:
https://raw.githubusercontent.com/Itseez/opencv_3rdparty/8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb/ffmpeg/opencv_ffmpeg.dll
同理我们也可以得到我们的另一个 opencv_ffmpeg_64.dll
的下载链接:
# 注意这里同样要替换 ${FFMPEG_FILE_HASH_BIN64}
https://raw.githubusercontent.com/Itseez/opencv_3rdparty/35fe6ccdda6d7a04e9056b0d73b98e76/ffmpeg/opencv_ffmpeg_64.dll
然后分别放入两个文件夹,替换掉源文件,然后重新使用Cmake Configure一下,即可发现现在已经成功下载 ffmpeg
了。
ippicv
同样按照上面的方法,进入得到目录 ~\opencv-3.1.0\3rdparty\ippicv\
,打开downloader.cmake
查看相应的下载链接,并替换相应的MD5变量,加上 \opencv-3.1.0\3rdparty\ippicv\downloads\windows-04e81ce5d0e329c3fbc606ae32cad44d
中的文件名 即 ippicv_windows_20151201.zip
,即可得到我们需要的下载链接
https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_windows_20151201.zip
下载后,替换掉源文件,然后重新使用Cmake Configure一下,然后就会得到下面的界面:
这里根据自己的需求勾选自己需要的选项或者消去自己不需要的选项就可以了,选择完成后点击 Configure 旁边的 Generate ,这个过程很快,最后会得到:
得到如上图片,则说明我们的OpenCV主体部分已经配置成功!
下载并解压:opencv_contrib 如果不需要该第三方库,可以跳过该步骤。
Configure之后,然后在Cmake中加入该第三方库,找到 OPENCV_EXTRA_MODULES_PATH
然后将你的opencv_contrib-master 文件夹下的 modules 加入路径当中,然后再Generate即可。
打开OpenCV的build文件夹,可以看到已经生成了很多的文件,选中其中的OpenCV.sln,用VS打开这个工程文件:
编译Debug版本的OpenCV
1)首先选择 Debug x64 的平台
2)选择右边的 ALL_BUILD ,右键,选择 生成 或者 重新生成 然后静静等待就可以了
编译Release版本的OpenCV
步骤同上,只是将Debug变成Release,然后右键生成ALL_BUILD:
我们通过源码安装的时候,此时安装的 E:\3software\program\opencv-3.1.0\include\opencv2
目录下只有一个opencv.hpp 文件,需要我们再使用visual studio INSTALL一下:
右键选择生成,你可以Debug 和 Release版本都生成一下,生成之后,你就可以看到如下结果:
下面是一段测试代码:
#include
#include
#include
#include
#include
using namespace cv;
int main()
{
Mat img = imread("E:/my_dream.png");
namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", img);
waitKey();
return 0;
}
将相应的openCV路径包括依赖库添加到工程目录中:
E:\3software\program\opencv-3.1.0\include
E:\3software\program\opencv-3.1.0\include\opencv
E:\3software\program\opencv-3.1.0\include\opencv2
E:\3software\program\opencv-3.1.0\build\install\x64\vc12\lib
E:\3software\program\opencv-3.1.0\build\install\x64\vc12\staticlib
opencv_core310.lib
opencv_highgui310.lib
opencv_imgcodecs310.lib
opencv_imgproc310.lib
ippicvmt.lib
编译好开始执行即可:
解决该问题只需要将 E:\3software\program\opencv-3.1.0\build\install\x64\vc12\bin
目录下对应需要的 .dll 文件拷贝到 C:\Windows\System32
目录即可。