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