首页 > Windows开发 > 详细

VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】

时间:2015-05-08 23:31:47      阅读:44052      评论:5      收藏:0      [点我收藏+]

VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】

本文介绍如何配置VS+openCV环境,并解决“opencv 3.0 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失的”警告

参考博客:

http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html

下载 openCV

下载 Opencv for Windows 最新版本,本文是 Opencv 3.00。双击后会出现解压提示,实际上就是“安装”了,路径填写为 D:/Program Files,然后确定。

D:/Program Files 可以为任意自己希望opencv安装的路径,解压完成后,会在你所填目录中新增一个 opencv文件夹,
里面就是opencv的所有内容了。例如按照我的路径,解压完成后Opencv就在 D:/Program Files/opencv 里面了。

 

配置环境变量

在系统变量里面新建变量,名为 OPENCV ,值为自己解压opencv路径下的build路径,如 D:\Program Files\opencv\build

技术分享

Tip

这一步是方便以后如果opencv路径改变了,只需要修改此变量就可以了,而不必做大范围修改。

在系统变量里面编辑 Path 变量,在末尾添加 ;%OPENCV%\x86\vc12\bin

技术分享

x86和x64分别表示32bit和64bit的VS工程,根据自己的工程来修改,否则虽编译成功但会运行错 误;vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
环境变量设置好后最好注销(重启)一下系统,可能有的系统环境变量不会立即生效,而导致一系列路径相关的问题。

编写Opencv的VS工程容属性表

在opencv根目录(例如 D:\Program Files\opencv)下新建VS属性表文件 opencv300.props,或者直接下载我的 opencv300.props(点击下载) 属性表文件。

opencv300.props 文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
    <LibraryPath Condition="‘$(Platform)‘==‘Win32‘">$(OPENCV)\x86\vc12\lib;$(OPENCV)\x86\vc12\staticlib;$(LibraryPath)</LibraryPath>
    <LibraryPath Condition="‘$(Platform)‘==‘X64‘">$(OPENCV)\x64\vc12\lib;$(OPENCV)\x64\vc12\staticlib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <Link Condition="‘$(Configuration)‘==‘Debug‘">
      <AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;IlmImfd.lib;libjasperd.lib;libjpegd.lib;libpngd.lib;libtiffd.lib;libwebpd.lib;opencv_calib3d300d.lib;opencv_core300d.lib;opencv_features2d300d.lib;opencv_flann300d.lib;opencv_highgui300d.lib;opencv_imgcodecs300d.lib;opencv_imgproc300d.lib;opencv_ml300d.lib;opencv_objdetect300d.lib;opencv_photo300d.lib;opencv_shape300d.lib;opencv_stitching300d.lib;opencv_superres300d.lib;opencv_ts300d.lib;opencv_video300d.lib;opencv_videoio300d.lib;opencv_videostab300d.lib;zlibd.lib;%(AdditionalDependencies)
      </AdditionalDependencies>
    </Link>
    <Link Condition="‘$(Configuration)‘==‘Release‘">
      <AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;IlmImf.lib;ippicvmt.lib;libjasper.lib;libjpeg.lib;libpng.lib;libtiff.lib;libwebp.lib;opencv_calib3d300.lib;opencv_core300.lib;opencv_features2d300.lib;opencv_flann300.lib;opencv_highgui300.lib;opencv_imgcodecs300.lib;opencv_imgproc300.lib;opencv_ml300.lib;opencv_objdetect300.lib;opencv_photo300.lib;opencv_shape300.lib;opencv_stitching300.lib;opencv_superres300.lib;opencv_ts300.lib;opencv_video300.lib;opencv_videoio300.lib;opencv_videostab300.lib;zlib.lib;%(AdditionalDependencies)
      </AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

这份属性表为opencv3.0的VS2013工程属性表,兼容64位和32位平台,兼容Debug和Release配置。详细解释看后文,后面在VS工程中配置Opencv只需要导入这份属性表就可以了。

新建VS测试工程

文件 -> 新建 -> 项目 -> Visual C++ -> Win32 控制台应用程序(输入名称test)

技术分享

确定 -> 下一步 -> 附加选项选“空项目” -> 完成

技术分享

VS内配置Opencv

这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。

属性管理器 -> 右键 “test”(工程名) -> 添加现有属性表

技术分享

找到之前新建或者下载的属性表( D:\Program Files\opencv\opencv300.props ),添加进工程

技术分享

测试

解决方案资源管理器 -> 源文件(右键)-> 添加 -> 新建项

技术分享

Visual C++ -> C++文件:输入名称test点添加

技术分享

粘贴下面的代码,保存:

#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
        Mat img = imread("pp.jpg");
        if (img.empty())
        {
                cout << "error";
                return -1;
        }
        imshow("pp的靓照", img);
        waitKey();

        return 0;
}

把自己的靓照改名为pp.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)

技术分享按F5调试程序,如果你的图片出来了就OK了。

 

解决警告

   编译的时候会出现“opencv 3.0 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失的”的警告。
解决办法就是找到警告的文件,然后用notepad++转码为ANSI技术分享
技术分享技术分享

VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】

原文:http://www.cnblogs.com/coderbean/p/4489103.html

(6)
(7)
   
举报
评论 一句话评论(5
2015-07-01 20:02:34
你好!在添加属性表时提示:属性表无效,或者添加它会导致循环继承期中一个选定的属性表
回复
 (9)
 (46)
2015-10-03 21:36:18
你好,我按照你的步骤出现了一个问题,想请教一下,问题是
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -> 右键 “test”(工程名) -> 添加现有属性表

这一步我出现了错误
错误是:
cannot add property sheet ‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘ as it is either an
invalid property sheet,or adding it would cause a circular inheritance with one of the selected property heets

求如何解决呢?

回复
 (9)
 (3)
2015-10-03 21:36:20
你好,我按照你的步骤出现了一个问题,想请教一下,问题是
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -> 右键 “test”(工程名) -> 添加现有属性表

这一步我出现了错误
错误是:
cannot add property sheet ‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘ as it is either an
invalid property sheet,or adding it would cause a circular inheritance with one of the selected property heets

求如何解决呢?

回复
 (9)
 (4)
2015-10-03 21:36:53
如有任何答案,可以发邮件到我的邮箱:wang010366@vip.qq.com
回复
 (9)
 (4)
2015-10-10 23:30:53
你好,我按照你的步骤出现了一个问题,想请教一下,问题是
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -> 右键 “test”(工程名) -> 添加现有属性表

这一步我出现了错误
错误是:
cannot add property sheet ‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘ as it is either an
invalid property sheet,or adding it would cause a circular inheritance with one of the selected property heets

求如何解决呢?

我也出现了同样的错误,怎么解决的呀??
回复
 (9)
 (11)
5条  
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!