基于VS2013搭建OpenCV开发环境

上篇文章中,已经自己动手编译了OpenCV库,本篇文章来搭建OpenCV的开发环境。

先来看看下载的OpenCV 2.4.8库和自己编译的库:

20140320192649 20140320192746

基于x64的开发,如果使用官网下载的库,要选择x64的文件夹,在x64文件夹内还有vc10,vc11,vc12 3个文件夹,分别对应vs2010,vs2012,vs2013。下面开始搭建开发环境,首先设置环境变量。

一、设置环境变量

首先新建一个系统变量OpenCV,如果选择使用官网下载的库,路径为C:\OpenCV2.4.8\opencv\build\x64\vc12 ,自己编译的库,路径为:C:\OpenCVLatest\build\vs2013x64\install\x64\vc12。

执行下列命令添加OpenCV系统变量(需要管理员权限):

SETX OpenCV C:\OpenCV2.4.8\opencv\build\x64\vc12 /M

然后,编辑系统变量Path,在最后加上:

%OpenCV%\bin;

为什么不直接在Path的最后加上C:\OpenCV2.4.8\opencv\build\x64\vc12\bin; 还要新建一个OpenCV变量呢,不是多此一举吗?直接添加是可以的,但是添加变量的好处就是如果库的位置发生了变化,只需要修改OpenCV这一个变量的值,其他引用它的地方都不用改。

二、配置VS2013

  1. 新建vc++ win32的控制台应用程序,命名为HelloOpenCV;
  2. 在“配置管理器”(生成–>配置管理器)里新建解决方案平台,选择x64;20140320200541
  3. 打开“属性管理器”(视图–>其他窗口–>属性管理器),会看到步骤2新建的x64的Debug和Release配置;20140320200616
  4. 在Debug|x64上“右击”,选择“添加新项目属性表”,命名为“OpenCV248_X64_Debug”,同样Release|x64的命名为“OpenCV248_X64_Release”;
    20140320201541
  5. 在“OpenCV248_X64_Debug”上右击选择“属性”,在弹出的属性页中,左侧选择“通用属性->VC++目录”,在右侧编辑“包含目录”和“库目录”分别为$(OpenCV)\..\..\include和$(OpenCV)\lib20140320201649
  6. 接下来在左侧选择“链接器->输入”,在右侧编辑“附加依赖项”,添加以下值:
    opencv_calib3d248d.lib;
    opencv_contrib248d.lib;
    opencv_core248d.lib;
    opencv_features2d248d.lib;
    opencv_flann248d.lib;
    opencv_gpu248d.lib;
    opencv_highgui248d.lib;
    opencv_imgproc248d.lib;
    opencv_legacy248d.lib;
    opencv_ml248d.lib;
    opencv_nonfree248d.lib;
    opencv_objdetect248d.lib;
    opencv_ocl248d.lib;
    opencv_photo248d.lib;
    opencv_stitching248d.lib;
    opencv_superres248d.lib;
    opencv_ts248d.lib;
    opencv_video248d.lib;
    opencv_videostab248d.lib;

    20140320202545

  7. 重复步骤5和6,配置OpenCV248_X64_Release。两者的不同在于Debug的附加依赖性都是结尾带有d.lib的库,d表示Debug,Release的则不带,库的名字可以在$(OpenCV)\lib文件夹中找到。另外,248表示OpenCV的版本号,如果使用的是其他版本的OpenCV,这里要记得修改248为相应的版本号;
    opencv_calib3d248.lib;
    opencv_contrib248.lib;
    opencv_core248.lib;
    opencv_features2d248.lib;
    opencv_flann248.lib;
    opencv_gpu248.lib;
    opencv_highgui248.lib;
    opencv_imgproc248.lib;
    opencv_legacy248.lib;
    opencv_ml248.lib;
    opencv_nonfree248.lib;
    opencv_objdetect248.lib;
    opencv_ocl248.lib;
    opencv_photo248.lib;
    opencv_stitching248.lib;
    opencv_superres248.lib;
    opencv_ts248.lib;
    opencv_video248.lib;
    opencv_videostab248.lib;
  8. 配置完成,在HelloOpenCV项目文件夹中,可以看到刚刚添加的“属性表”,以后在新项目中,只需要打开“属性管理器”,右击添加现有属性表就可以了。
    20140320214556

三、简单的Demo

下面写个简单的Demo,看看配置是否可用。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char **argv)
{
	Mat img = imread("twoboy.jpg");
	if (img.empty())
	{
		cout << "打开图像失败!" << endl;
		return -1;
	}
	namedWindow("image", CV_WINDOW_AUTOSIZE);
	imshow("image", img);
	waitKey();

	return 0;
}

运行结果:

20140320221724

注意事项

本篇博文中的第一部分是设置系统环境变量,其中添加了一个OpenCV的变量,这个变量在后面的属性表配置中用到了,引用方式是$(OpenCV),如果按照上面添加了如:目录$(OpenCV)\..\..\include,在写程序的时候提示找不到opencv.hpp文件,那么不妨重启一下你的VS2013吧!

如果本篇文章对你有所帮助,烦请扫描下方二维码关注一下我的公众号“程序旅途”

qrcode_for_gh_71d38a91773e_258

分享到: 更多

已有13条评论 发表评论

  1. 引用通知: OpenCV读取和显示图片 | 柠檬树博客 /

  2. 匿名 /

    🙄

  3. 匿名 /

    请问你运行的结果有没有 已加载“D:\download\opencv2.4.9\opencv\build\x86\vc12\bin\opencv_core249.dll”。无法查找或打开 PDB 文件。
    这样的提示,虽然不是错误但这样没法调试。

    1. 田念明 / 本文作者

      这个我记不清了,不过要保证编译成dll的opencv源码存在

    2. 匿名 /

      我的也出现这个: 已加载“C:\Windows\SysWOW64\opencv_core248.dll”。无法查找或打开 PDB 文件。好烦人的错误。请问您解决了吗?

  4. 匿名 /

    很好,学习了!
    不过namedWindow(“image”, CV_WINDOW_AUTOSIZE);这里我的提示CV_WINDOW_AUTOSIZE未定义,看了官方文档,好像是c里面用这个,c++里用的是WINDOW_AUTOSIZE,改回来就可以编译了。
    我的是vs2013+opencv3.0.0

  5. 匿名 /

    编译时出现错误:cannot open input file‘opencv_calib3d300.lib’

    1. 匿名 /

      我的错误也是这个

      1. 匿名 /

        在opencv中搜索所有的dll文件,把他们拷贝到你的工程目录下就行。

  6. 匿名 /

    好,谢谢

  7. 匿名 /

    🙂 🙁 🙄 :mrgreen: 🙄 🙁 🙂

  8. 匿名 /

    😳 👿 😎

  9. 匿名 /

    嗯 ,可以的

发表评论