【WinCV】小白在VS下安装opencCV2.4.11及3.0
来源:互联网 发布:php网店 编辑:程序博客网 时间:2024/06/06 08:57
本篇主要介绍如何配置openCV。
配置环境:
Visual Studio 2013 community
openCV3.0.0
openCV2.4.11
我电脑上安装了俩CV,本文讲解的方法适用于两种版本,配置时版本差异有影响的时候我会分开记述,但以3.0为主。
一、下载
首先进入opencv的官网http://www.opencv.org.cn/index.php/Download上下载一个版本,我选择的是opencv3.0.0
下载完成后双击运行,选择输出目录。我选择的是D:\Program Files\CV3,但是它自己会在这个目录下再建立一个opencv文件夹,把所有文件放在里面,也就是D:\Program Files\CV3\opencv(如果电脑上只需要一个opencv的话路径最后最好不要加上CV3)。然后Extract,解压完成后就完成了安装。
二、配置
首先设置环境变量,其实就是用一个变量名代替一个路径。
按键盘上“winkey+x”弹出菜单,然后选择“系统”,在出现的窗口上点击”高级系统设置“
然后”环境变量“
在”系统变量“下面选择”新建“
我这里写的路径是D:\Program Files\CV3\opencv\build,这里有必要先说一下环境变量是个什么东西。
前面安装的时候我选的解压地址是D:\Program Files\CV3,也就是说环境变量下面的这个地址指向的是我们安装的openCV里面的一个文件夹
暂时先说到这~~我们只需要知道这样新建了系统变量之后就可以用$(CV3)这个变量名来代替下面的变量值,后面写属性表的时候会接触到这个东西
然后我们还需要在系统变量path下面添加一个路径,跟刚才新建的CV3相似。可以看见path下面已经有了很多路径,那是安装其他软件时自己添加进去的(注意在已有路径的基础上添加新的路径时,后面的要和前面的用分号分割开)
新添加的这个路径是D:\Program Files\CV3\opencv\build\x86\vc12\bin,也是刚才安装时下面的一个目录。
蓝后就是愉快的属性表啦啦啦~~
这份属性表是VS2013下的,兼容32位和64位平台,兼容Debug和Release配置
下面是openCV3.0.0的属性表文档
<?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>$(CV3)\include;$(CV3)\include\opencv;$(CV3)\include\opencv2;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Platform)'=='Win32'">$(CV3)\x86\vc12\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="'$(Platform)'=='X64'">$(CV3)\x64\vc12\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="'$(Configuration)'=='Debug'"> <AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link Condition="'$(Configuration)'=='Release'"> <AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup /></Project>
<?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;$(OPENCV)\include\opencv;$(OPENCV)\include\opencv2;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="'$(Configuration)'=='Debug'"> <AdditionalDependencies>opencv_calib3d2411d.lib;opencv_contrib2411d.lib;opencv_core2411d.lib;opencv_features2d2411d.lib;opencv_flann2411d.lib;opencv_gpu2411d.lib;opencv_highgui2411d.lib;opencv_imgproc2411d.lib;opencv_legacy2411d.lib;opencv_ml2411d.lib;opencv_nonfree2411d.lib;opencv_objdetect2411d.lib;opencv_ocl2411d.lib;opencv_photo2411d.lib;opencv_stitching2411d.lib;opencv_superres2411d.lib;opencv_ts2411d.lib;opencv_video2411d.lib;opencv_videostab2411d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link Condition="'$(Configuration)'=='Release'"> <AdditionalDependencies>opencv_calib3d2411.lib;opencv_contrib2411.lib;opencv_core2411.lib;opencv_features2d2411.lib;opencv_flann2411.lib;opencv_gpu2411.lib;opencv_highgui2411.lib;opencv_imgproc2411.lib;opencv_legacy2411.lib;opencv_ml2411.lib;opencv_nonfree2411.lib;opencv_objdetect2411.lib;opencv_ocl2411.lib;opencv_photo2411.lib;opencv_stitching2411.lib;opencv_superres2411.lib;opencv_ts2411.lib;opencv_video2411.lib;opencv_videostab2411.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup /></Project>
接下来就是如何使用属性表了~
随便在哪里新建一个txt文档(这个等下改了后缀名就是属性表文件,文件名和保存路径你自己选哦~自己怎么用方便就怎么写)
于是我在我的安装路径D:\Program Files\CV3\opencv下建了一个opencv300.props(props是属性表文件的后缀)
然后把上面的代码复制进去
保存~~
简直好!如果只想使用的话跳到后面去看测试部分吧,,,
这里先讲一下怎么修改属性表。代码是我从某位大大那儿拿过来的,首先表示一下感谢~
原帖在这里哦http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html
前5行不需要修改(我也看不懂什么意思,但是是必须要的,应该是表明身份,版权啊什么的,去掉之后无法添加进project)
第六行有四个路径,分别是$(CV3)\include ; $(CV3)\include\opencv ; $(CV3)\include\opencv2 ; $(IncludePath)
前面说过$(CV3)是环境变量CV3的路径,所以我们进入到这三个文件夹下面来看看,首先是include
里面似乎只有俩文件夹,那我们再进入opencv下面看看
哇,全部是头文件!而进入opencv2下面也是差不多的,现在知道include是什么东西了。。。
我们写代码时用到 #include <cv.h> 什么的就是在这里找的
插一句,因为opencv2下面还有子目录,所以使用它的头文件应该这么写 #include <highgui/highgui.hpp>(其实打开opencv2下面的opencv.hpp看看,包含了opencv.hpp就相当于包含了一堆头文件,所以资源不紧张的时候就可以直接include opencv.hpp)
结论就是,属性表第六行 $(CV3)\include ; $(CV3)\include\opencv ; $(CV3)\include\opencv2 ; $(IncludePath)
这几个路径是寻找头文件时进入的路径。(虽然我还没懂最后一个是什么,但是需要的时候一般直接修改前面仨就行了)
回到属性表代码:
第七八两行分别是代表32位工程和64位工程的库文件目录,这是在vs中新建project的两种不同选择(所以这个属性表同时支持32位和64位程序)
$(CV3)\x86\vc12\lib 是指32位工程下用vs2013建立的工程的库文件,vc12是指visual studio 2013,以此类推,vc11是2012,vc10是2011
$(CV3)\x64\vc12\lib 跟上面差不多啦~~对于64位project的
第九、十行代码不看,看不懂。。。
11行和14行好对称。分析一下
第11行里面有个地址 $(Configuration)'=='Debug 看见Debug就笑了。。。
第14行也有 $(Configuration)'=='Release 话说Release什么意思,,我是初学者还真不懂
凭感觉能感觉到Debug的时候使用第12行,Relese的时候用第15行!
再来看看12行和15行里面这些文件是什么鬼。。
我记得前面使用了俩路径 $(CV3)\x86\vc12\lib 和 $(CV3)\x64\vc12\lib 吧,那就在这找找看咯~
总是保持一颗好奇的心就很容易得到答案~果然属性表里写的就是这几个文件,12行的带d,15行的不带d,就这么简单!
知道属性表怎么写的之后,版本修改或者安装路径修改之后重新配置就变得很容易了,只需要修改几个路径,几个文件名就行。(不过原则是根据软件改属性表,最好不要去修改openCV的文件。。要是你不是新手,请无视我的话)
插一句。。。opencv3.0的属性表里面lib文件只有4个,而前面的opencv2.x.x用到的lib文件都超级多,,,好在2.x.x有他们的共性,就是不同版本的lib文件名字只是修改了版本号,没有大的改变。比如说opencv2.4.8用的是opencv_ts248d.lib,那么opencv2.4.11用的就是opencv_ts2411d.lib
三、测试
打开vs2013,随手建立一个32位控制台应用
点了”ok“之后next,再把”Empty Project“前面勾上,Finish
工程建立好了,首先添加属性表,进入Property Manager窗口,右键工程名”cvdemo“,Add existing
在弹出的窗口中选择刚才保存的属性表
我们发现在Debug和Release下面都有了属性表(原谅我现在还不知道Release是什么意思。。。)
然后就是新建main咯~在Solution Explorer里面的Soucce Files上点右键,然后Add , New Item,建立cpp文件
最让人兴奋的就是测试代码了~
#include "highgui.h"int main(int argc, char** argv){IplImage* img = cvLoadImage("demo.jpg");cvNamedWindow("demo", CV_WINDOW_AUTOSIZE);cvShowImage("demo", img);cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow("demo");}
复制进去之后保存,然后随手找来一张jpg放在cvdemo工程的目录下(在工程目录下还有一个cvdemo目录,应该复制到里面那个cvdemo里面),名字改为demo.jpg
ok~很成功
啥?怎么是轮廓?因为本来就是啊!
本来怎么会是轮廓?!!因为我美美哒的学姐怎么能给你们看!!!(我发誓不会让她看到这个轮廓,不然我会好惨。。。)
最后说一点。。。openCV3.0.0虽然被官网说得好,但是感觉用它做出来的小程序调试时打开窗口等一会儿才会出图片。然而2.4.11是立即显示图片的。并不清楚为什么。
向各位看完的表示感谢~
- 【WinCV】小白在VS下安装opencCV2.4.11及3.0
- QT4.3.0在VS.NET下安装指南
- 在VS.NET2008下安装WTL8.1
- vs.net2003在代理下的一个奇怪小问题
- 小白级别准程序员在windows下安装GitHub
- ubuntu下安装chrome及小问题解决
- VS下Python的安装使用及配置
- 在VS上安装Maya Plugin Wizard错误及解决方法
- OpenCV1.0在VS下的安装和配置
- Qt在VS 2008下的安装与编译
- OpenCV1.0在VS下的安装和配置
- CUDA 6.0在 VS 2010下的安装和配置
- CUDA 6.0在 VS 2010下的安装和配置
- Windows下openssl安装与在vs中的使用
- FFTW3在VS环境下的安装(亲测)
- NS2安装及在Eclipse下调试
- 在Ubuntu下KDevelop安装及汉化
- 在CentOS下安装及测试MongoDB
- Codeforces #304 (div2)
- 黑马程序员——OC 基础:NSString的一些用法
- 不用额外空间判断一个数是否是回文形式
- (三)Python的基本概念
- Linux - DNS - Command Dig
- 【WinCV】小白在VS下安装opencCV2.4.11及3.0
- Linux Xmodmap 键盘映射
- hihoCoder 47周 拓扑排序
- 后台开发-win8下IIS服务器服务器搭建
- Codeforces #305 (div2)
- IDAPython插件安装
- 解决Mac下GDB提示签名错误
- JavaWeb系列之五(HTTP协议和WEB概述与TOMCAT的简介、安装)
- 在Ubuntu Server 12.04 LTS上搭建可远程访问的PostgreSQL 9.1环境