一、准备工作:

(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.编写代码

 #include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp> using namespace cv; int _tmain(int argc, _TCHAR* argv[])
{
Mat mat;
mat = imread("home.jpg",CV_LOAD_IMAGE_UNCHANGED);
if (mat.empty())
return -;
imshow("MyWindow", mat);
waitKey();
destroyWindow("MyWindow");
return ;
}

5.运行程序

最新文章

  1. Power of Three
  2. HDOJ 4747 Mex
  3. 使用innerHTML获取HTML代码时,HTML标记属性的双引号好多都消失不见了,原来是属性值中包含空格才会保留双引号
  4. Android Studio用release模式进行调试
  5. Oracle DB SQL 性能分析器
  6. mysql select 报错
  7. [转载]Linux的时间与时钟中断处理
  8. 第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter
  9. 使用 hibernate 根据映射文件生成数据库表
  10. JVM参数设置、分析
  11. 写给Java开发者的Node.JS简介
  12. 《Spark大数据处理:技术、应用与性能优化》【PDF】
  13. 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
  14. python_如何拆分含有多种分隔符的字符串?
  15. python print 在windows上 出现 Bad file descriptor error
  16. 洛谷P1108 低价购买题解
  17. js定时器setInterval()与setTimeout()
  18. Docker常见命令
  19. 倾斜摄影数据OSGB进入到ArcGIS平台相关问题小结
  20. windows安装mysql8

热门文章

  1. CodeForces - 76F:Tourist (旋转坐标系,LIS)
  2. Spring源码窥探之:注解方式的AOP原理
  3. SQL查询结果拼接成字符串
  4. python的多线程是否没有用了
  5. JPA EnableJpaAuditing 审计功能
  6. Tips on Python
  7. Bzoj 1927: [Sdoi2010]星际竞速(网络流)
  8. Java中定义不了可变长数组怎么办---集合 泛型
  9. hdfs、yarn集成kerberos
  10. 手把手带你部署K8s二进制集群