手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

1:首先下载OpenCV3.3.0的源码:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

2:解压源码包opencv-3.3.0.zip,【点击"解压当前文件夹"】:,为了以下方便说明,这里以F:\opencv-3.3.0为例:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

查看源码包,在文件夹下3rdparty【就是需要的第三方的库】,但是第三方库 ffmpeg 和 ippicv是空的,

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

在用cmake配置编译时,有些需要联网下载,并保存在源但是往往会下载很慢,所以可以提前下载好,放进对应的文件夹即可,这个对应的文件夹是源码文件夹下的.cache文件夹,需要新建,即在F:\opencv-3.3.0下新建.cache文件夹,注意不要鼠标右键新建文件夹,建立不了前缀名是"."的文件夹,需要用命令行,> md .cache

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

即可新建。

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

然后在.cache文件夹下,新建ffmpeg和ippicv文件夹。以下详细介绍下载动态库。


3:下载对应的ffmpeg的动态库:

打开文件夹ffmpeg下的ffmpeg.cmake文件,会看到有一个第一行,我们需要下载master_20170704

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

打开https://github.com/opencv/opencv_3rdparty/branches/all,找到对应的名字:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

然后下载,解压后,将以下三个文件复制到F:\OpenCV-3.3.0/.cache/ffmpeg文件夹下:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

同时将这三个复制到源码的文件夹F:\opencv-3.3.0\3rdparty\ffmpeg下,只是为了后期配置编译的更快。

4:下载ippicv

与上述步骤类似,打开\opencv-3.3.0\3rdparty\ippicv\ippicv.cmake文件:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

需要下载后缀是20170418的包,解压后,会看到看到几个不同平台下的压缩包:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

比如这里需要编译x86版本的,将ippicv_2017u2_win_ia32_20170418.zip复制到到F:\opencv-3.3.0\.cache\ippicv文件夹下,然后注意要重命名,加上改.zip的hash码,那么怎么查看该.zip的hash码呢?同样打开\opencv-3.3.0\3rdparty\ippicv\ippicv.cmake文件,

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

ippicv_2017u2_win_ia32_20170418.zip的文件名字,改为以下,即在前面加上它对应的HASH码:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

这样点.cache文件夹下的两个文件夹都已经完成了。


5:电脑上需要安装Python3.X否则会有以下提示:

再编译过程需要python3.X版本手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

6:打开cmake

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
即以以下为例:

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
为了快速编译将源码包中的文件夹3rdparty整个复制到F:\OpenCV3.3Build文件夹下,
然后点击“Configure”按钮:
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
等一两分钟后,等待配置完成:
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

然后再点击"Configure"按钮

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

点击“Generate”,

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

可以关闭'CMake"。

7:打开编译后的文件夹F:\OpenCV3.3Build

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
打开OpenCV.sln,然后点击Build Solution:手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

需要等待几分钟:
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
最后会出现以下界面
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
,这个时候x86版的Debug版本已经编译成功,生成的动态库、共享库、可执行文件在文件夹F:\OpenCV3.3Build\bin\Debug下
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
打开该文件夹查看生成的动态库
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)

第8步:点击"INSTALL"->Project Only Build Only INSTALL

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
然后在F:\OpenCV3.3Build下自动生成一个install文件夹,文件夹下保存了OpenCV的头文件和x86 Debug模式下的
动态库和共享库
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
打开x86文件夹,
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
打开vc14文件夹
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
lib文件夹:
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
可以看到有一个是opencv_dnn330d.lib即深度学习的共享库

9:编译x86的release版本
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
点击Build->Build Solution,通以上编译Debug版本类似,需要等待几分钟,。

手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
然后,这时查看F:\OpenCV3.3Build\bin下的Release文件夹下已经生成好动态库
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
同样点击:
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
等几秒钟
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
然后查看F:\OpenCV3.3Build\install\x86\vc14\lib多了一些文件名不带"d"的共性库文件
手把手练习--cmake+VS2015编译OpenCV3.3源码(x86版本)
10:测试使用
[cpp] view plain copy
  1. #include<iostream>  
  2. #include<string>  
  3. #include<opencv2\core\core.hpp>  
  4. #include<opencv2\highgui\highgui.hpp>  
  5. #include<opencv2\imgproc\imgproc.hpp>  
  6. using namespace cv;  
  7. using namespace std;  
  8. int main(int argc,char*argv[])  
  9. {  
  10.     Mat img = cv::imread(argv[1], cv::IMREAD_COLOR);  
  11.     imshow("as", img);  
  12.     waitKey(0);  
  13.     return 0;  
  14. }