opencv库的版本更新频率比较高,目前官方最新发布版本为opencv3.3.0。最新release库会增加一些新的功能,或者改进部分算法,但是对于开发工具,开发平台的更新经常会相对滞后。手中有一台win7系统的笔记本,开发工具使用的是VS2013。而最新的opencv3.3.0,官方发布的win pack支持VC14,也就是VS2015,。幸好,opencv项目的编译工具cmake,那么我们可以使用cmake构建适合不同版本编译器的静态库、动态库。
环境概述1、系统版本: windows 7 64位2、开发工具: VS20133、cmake版本: cmake-3.9.1-win64-x644、opencv版本:opencv-3.3.0.zip 【sources】
一、配置cmake目录
解压opencv-3.3.0.zip包,可以得到如上opencv-3.3.0文件夹。新建一个文件夹作为输出目录,这里命名输出文件夹为“output”
依次选择源码目录和输出目录,如上图中 source code 和binaries点击configure按钮,选择生成的工程类型,本次选择 visual studio 12 2013 ,点击Finish
二、解决cmake下载错误
直接点击Generate会开始编译生成工程,但是有极大的可能性,会出现工程生成很慢,其实主要原因是需要下载ffmpeg 和ippicv的包。下载地址是在github上, 访问国外网站服务器延迟大为了加快速度,最好是手动下载下来,修改名称后放到对应文件夹 \.cache 下
具体解决方式参考我的另一篇博客:
cmake编译OpenCV3.30源码下载 ippicv文件错误解决方案
本次直接给出最后结果
本次直接给出最后结果
ffmpeg包的名称
ippicv包 示例
现在重新使用cmake进行编译,注意最好选择上Build_opencv_world,这样会生成 opencv_world330.lib 符合官方库的使用方式
三、编译debug/release库
打开输出文件夹,本次测试的文件夹是/output,VS2013工程名称为penCV.sln。项目打开如下图所示,首先生成ALL_BUILD ,然后生成INSTALL
如果一切正常,可以在输出文件夹下看到 /install
四、测试工程效果
新建一个 win32工程,源码如下
新建一个 win32工程,源码如下
#include<opencv2\opencv.hpp> using namespace std; using namespace cv; int main(int argc, char** argv) { Mat image = imread("1.jpg"); resize(image, image, Size(500, 500)); imshow("my image", image); waitKey(0); return 0; }
环境配置: 全部是输出文件夹下install子文件夹的内容常规--包含目录: \install\include常规--库目录: \install\x86\vc12\lib链接器--附加依赖项: opencv_world330d.lib还有将DLL拷贝到项目下 opencv_world330d.dll
其中测试图片为1.jpg