VS2013+OpenCV3.4.2编译

一、准备工作:

(1)在OpenCV官网下载3.4.2版本(注意选择Win pack),https://opencv.org/releases.html。

 

(2)下载Contrib模块,https://github.com/opencv/opencv_contrib/releases/tag/3.4.2(记住opencv是什么版本,contrib就下什么版本,必须对应否则编译会出问题)

(3)下载CMake,下载后直接安装即可。https://cmake.org/download/

 

二、编译生成

下载的OpenCV是一个exe格式的文件,点击以后解压到你自己指定的目录即可,解压出来的文件包含一个source目录和一个build目录,实际上build目录就是已经编译好的可以使用的包了,但是不包含contrib模块,而且是64位的,

下面我们开始编译完整的32位版本。

(1)打开Ccmake-gui.exe

(2)点击Browse Source选择你解压出来的OpenCV Source目录,点击Browse Build选择一个目录用来存放生成的工程文件(自己创建一个目录),

 

 

(3)点击Configure,选择VS 2013,然后点击Finsh,然后CMake开始生成工程,注意此过程会从网上下载ffmpeg和ippicv两个库,所以需要联网。

(4)编译选择:

1.如果你想编译成静态库,那么把BUILD_SHARED_LIBS的钩去掉,这样就不用每次发布程序都带一堆动态库。

2.如果你想减少库文件,可以勾选BUILD_opencv_world,这样很多库会集成到opencv_world342.lib,那么你每次新建工程就不需要填写一大堆库链接了,但是可能也会把很多没用到的库包含进来

增加程序体积,所以我没有勾选,还是保持原来的。

 

3.如果你已经下载了contrib模块,解压模块,然后设置OPENCV_EXTRA_MODULES_PATH指向contrib的modules目录。如果你没下载这个模块,就不用做这一步了,工程照样能够正常编译。

 

(5)开始生成

选择完毕再次点击configure按钮,执行完毕还有红字则继续点击configure直到全部变成白色,然后点击Generate。

看到Configuring done、Generating done就表示已经搞定了。

 

(6)编译工程

进入你创建的Build目录,用vs打开OpenCV.sln工程,找到INSTALL然后点击生成,编译的时候把360杀毒和什么安全卫士之类的关闭,我因为打开导致cmake出错,关闭后就完全正常了,接着等待编译完成就OK了。编译完成后切换到Release模式再次编译。

 

(7)测试

1.用VS2013创建一个控制台程序,点击工程名右键-属性-配置属性-VC++目录,

打开包含目录,添加include,include/opencv,include/opencv2三个目录

 

2.添加库目录:install\x86\vc12\staticlib

 

3.点击配置属性-链接器-输入,选择附加依赖项,添加需要的库文件。DEBUG模式的都是*d.lib,RELEASE的是*.lib,根据自己项目引用到的模块来添加,我这里

需要添加的库有:

 ippicvmt.lib
IlmImfd.lib
ippiwd.lib
ittnotifyd.lib
libjasperd.lib
libtiffd.lib
libwebpd.lib
libjpeg-turbod.lib
libpngd.lib
opencv_core342d.lib
opencv_highgui342d.lib
opencv_imgcodecs342d.lib
opencv_imgproc342d.lib
zlibd.lib

 

4.编写代码

 1 #include "stdafx.h"
 2 #include <opencv2/opencv.hpp>
 3 #include <opencv2/highgui.hpp>
 4 
 5 using namespace cv;
 6 
 7 int _tmain(int argc, _TCHAR* argv[])
 8 {
 9     Mat mat;
10     mat = imread("home.jpg",CV_LOAD_IMAGE_UNCHANGED);
11     if (mat.empty())
12         return -1;
13     imshow("MyWindow", mat);
14     waitKey(0);
15     destroyWindow("MyWindow");
16     return 0;
17 }
View Code

 


5.运行程序

 

posted on 2018-08-15 10:21  平凡的编程者  阅读(5984)  评论(0编辑  收藏  举报