在VS中配置并测试opencv
什么是opencv?
opencv是一个计算机视觉库。它目前有两个分支2.4.X和3.X,2.4.X版本是经典版本,网上的教程资源大多是关于它的,所以推荐使用2.4.X。
它能帮我做什么?
这意味着你可以在自己的程序中使用计算机视觉相关功能,但不必关注具体实现。就像你使用电脑,但并不用关注电脑内部的原理。你唯一需要知道的就是如何使用它。
我该如何使用它?
这就是本文的工作^-^ 。
1,下载opencv
首先到opencv官网下载win平台的opencv,解压后你可以看到下面两个文件夹——build和sources,build是官方已经为我们编译好的可以直接使用的,而sources中是opencv的源码,仅供高级玩家尝试。

下载下来后可以大致浏览一下build文件夹下的内容:


粗略一看就看到了熟悉的x86与x64(32位用和64位用),还有vc11和vc12,虽然以前没见过但大致也可以猜出vc11和vc12是指自己的VS中vc版本,我们可以根据自己的系统与vs版本来选择。
2.配置环境变量
程序中的可执行文件,必须添加到系统环境变量PATH中才能被系统识别。这就类似一所房子,你必须登记到你的名下,才能使用它。opencv也是一样,它在某些目录中提供了一些可执行文件,所以我们必须将这个目录添加到系统环境变量中。
比如说我的可执行文件目录是E:\opencv\build\x64\vc12\bin
配置如下:

3.配置VS工程
在VS中新建一个win32 application的项目(略)。
3.1 配置头文件位置
当你在自己的代码中使用了opencv中的类或函数时,编译器并不知道这是个怎样的物体有什么功能。这就需要我们引用对应的头文件,因为在对应的头文件中有关于这个物体的描述,这样程序才能正确编译。然而这些头文件在哪里呢?我们需要告诉编译器。
比如我的头文件目录是:
E:\opencv\build\include
E:\opencv\build\include\opencv
E:\opencv\build\include\opencv2
将其配置到下面的“包含目录”中:

3.2 配置库文件位置与指定库文件
include中的头文件,只能大致的描绘opencv中的物体是怎样的有什么功能。但具体的,实现的,可运行的二进制代码全在库文件中,也就是lib文件中。只有这些具体实现的二进制代码链接到你的二进制代码中,程序才能正常工作。然而这些库文件在哪里呢?我们需要告诉编译器。
先配置库文件位置:
比如我的库文件位置是 E:\opencv\build\x64\vc12\lib
将其配置到下面的“库目录”中:

然后指定库文件:
opencv_calib3d2413.lib
opencv_calib3d2413d.lib
opencv_contrib2413.lib
opencv_contrib2413d.lib
opencv_core2413.lib
opencv_core2413d.lib
opencv_features2d2413.lib
opencv_features2d2413d.lib
opencv_flann2413.lib
opencv_flann2413d.lib
opencv_gpu2413.lib
opencv_gpu2413d.lib
opencv_highgui2413.lib
opencv_highgui2413d.lib
opencv_imgproc2413.lib
opencv_imgproc2413d.lib
opencv_legacy2413.lib
opencv_legacy2413d.lib
opencv_ml2413.lib
opencv_ml2413d.lib
opencv_nonfree2413.lib
opencv_nonfree2413d.lib
opencv_objdetect2413.lib
opencv_objdetect2413d.lib
opencv_ocl2413.lib
opencv_ocl2413d.lib
opencv_photo2413.lib
opencv_photo2413d.lib
opencv_stitching2413.lib
opencv_stitching2413d.lib
opencv_superres2413.lib
opencv_superres2413d.lib
opencv_ts2413.lib
opencv_ts2413d.lib
opencv_video2413.lib
opencv_video2413d.lib
opencv_videostab2413.lib
opencv_videostab2413d.lib
其实这就是库文件目录下的所有库文件,你可以用cmd进入对应文件夹下,用“dir /b”命令来列出所有lib文件,然后复制到下面的“附加依赖项”中:
4.测试opencv
我们简单的测试一下opencv打开一张图片并显示,代码如下:
//读取图片并显示
#include "stdafx.h"
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat img = imread("D:\\test.jpg");
namedWindow("测试opencv");
imshow("测试opencv", img);
cvWaitKey();
}
使用的图片如下(将图片保存到D盘根目录,并改名为test,即与程序中的一致):

有了数据,有了程序,我们就可以运行了,但是千万别忽略了这个:

运行效果(略)。
TIP:【VS2013中如何解决error C4996: 'fopen'问题】请参考【http://jingyan.baidu.com/article/ce436649fd61543773afd32e.html】
在VS中配置并测试opencv的更多相关文章
- Jenkins中配置selenium测试
Jenkins中配置selenium测试 2015/03/23 第一步在jenkins中配置selenium服务器 第二步工程配置: 第三步:执行构建: 第四步,查看报告:
- Android Studio中配置及使用OpenCV示例
Android Studio配置及使用OpenCV 前言:最近在做项目移植,项目较大,在Eclipse中配置的Jni及OpenCV环境没任何问题,但是迁移到Studio中就问题一大堆,网上也找了一些资 ...
- OSG在WIN与VS中配置与测试
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1392531060.html Windo ...
- 在IntelliJ IDEA 13中配置OpenCV的Java开发环境
准备工作: 下载IDEA 13(这里以版本13为例,后面简称IDEA): 下载Java JDK(用于配置基本的Java开发环境): 下载OpenCV 2.4.9(这里以版本2.4.9为例,据这篇文章说 ...
- OpenCV2学习笔记03:Qt中配置OpenCV环境
在Qt中开发基于OpenCV的应用时,需要配置对应函数库到环境变量,这时候我们需要使用到qmake能够识别的变量来指定环境变量. INCLUDEPATH: 用于指定搜索头文件到文件夹路径. LIBS: ...
- 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)
CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...
- 关于Android Studio中使用jni进行opencv配置开发环境的要素秘诀
使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到 ...
- linux 中配置假域名来测试
1.linux中配置假域名 找到hosts文件进行编辑 命令:vim /etc/hosts 配置: #centos(本机IP)192.168.1.179 www.imooc.com(假域名,自己设置) ...
- visual studio 2013 中配置OpenCV2.4.13 姿势
首先在path中添加 “C:\OpenCV\opencv\build\x64\vc12\bin” (地址随实际变化) 注:添加的都是*86不使用*64 在visualstudio 2013中配置 ...
随机推荐
- jquery+html三级联动下拉框及详情页面加载时的select初始化问题
html写的三个下拉框,如下: <select name="ddlQYWZYJ" id="ddl_QYWZYJ" class="fieldsel ...
- Just a complaint about the college examinations
Well , you know. As a college student who want to find a good job after graduating like me , scores ...
- android的版本控制
在一个团队项目中,项目的版本控制,一方面促进团队的协同能力,另一方面提高项目的进度 即使一个人的项目也最好使用SVN这样的版本控制,可以清楚的知道自己的修改的代码,和项目进度等.合理的托管,也让优秀的 ...
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
/”应用程序中的服务器错误. 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例.请确保该用户在此计算机上有本地用户配置文件.该连接将关闭. 堆栈跟踪: [Sql ...
- storm安装(3)storm本身的安装
(6)下载storm包放入home文件夹中, 这里我用的版本是storm-0.8.2.zip 添加权限 chmod +x storm-0.8.2.zip 进行文件的解压 unzip storm-0.8 ...
- C++拷贝构造函数总结
C++拷贝构造函数总结 目录: 拷贝构造函数的基础知识 拷贝构造函数的使用 拷贝构造函数的行为 1.拷贝构造函数的基础知识 拷贝构造函数(copy constructor)是构造函数,是拷贝已经存在的 ...
- tomcat创建一个windows服务
具体步骤如下: 1.把JDK解压到C:\Program Files\Java下,Tomcat解压到D:\tomcat下 2.配置环境变量 JAVA_HOME:C:\Program Files\Java ...
- Arcglobe三维信息系统开发常见问题
1.SDE数据库导入GDB三维图层时,发生Z值丢失 问题描述:从GDB数据库中,将一部分mutipath图层导入到SDE数据库中.用相应的arcengine程序或Arcglobe中缩放至图功能时,发现 ...
- iOS 开发问题集锦(一)
最近在QQ群里好多人问一些比较基础的问题,在这罗列一下: 1.键盘上的斜杠键坏掉了,怎么样用快捷键进行注释呢? 首先在Xcode中注释的默认快捷键为:command+/: 其次可以自行修改快捷键:Xc ...
- 案例研究:Web应用出现间歇性的SqlException
案例研究:Web应用出现间歇性的SqlException 2013-07-29 14:36 by 微软互联网开发支持, 231 阅读, 3 评论, 收藏, 编辑 最近有客户找到我,说他们生产环境的事件 ...