这里假设看到这篇文章的人都已经对OpenCV以及机器视觉等最基础的概念有了一定的认识,因此本文不会对OpenCV做任何的介绍,而是直接介绍OpenCV2.4.9的安装与测试。此外本文只是简单的介绍如何配置OpenCV,目的是在最短的时间里将开发环境配置出来。至于详细的配置思路,网上实在太多,百度一下类似:VS2012+openCV2.4.9就能找到你想要的结果。

一、环境篇

  首先简单的介绍一下使用的开发环境,本文将在Windows8.1平台下使用VS2012开发C++程序,所使用的OpenCV版本为2.4.9。

  从http://opencv.org/ 下载了2.4.9版本后,将其解压到合适的路径。此处本人将其解压到了E:\openCV\2.4.9中,解压后的文件结构应该是这样的。

二、开始配置

  环境的配置分为几个方面

  1. 环境变量配置;
  2. VS中【包含目录】、【引用目录】、【库目录】的添加;
  3. VS中【连接器】->【输入】中附加依赖项。

  那么接下来就开始配置开发环境,首先确定OpenCV的目录为E:\openCV\2.4.9(或者你自己设定的目录)。

2.1 环境变量配置

  在计算机的【系统属性】->【环境变量】->【系统变量】中

  将"E:\OpenCV\2.4.9\build\x86\vc11\bin"添加至末尾,如果你的解压路径与我不同,请参考着修改,如图所示。

2.2 【包含目录】、【引用目录】、【库目录】的添加

  打开VS2012,任意创建一个C++工程。在项目的【属性管理器】中,找到"MicroSoft.Cpp.Win32.user",右击其选择属性(这里有Debug和Release两个目录中都有"MicroSoft.Cpp.Win32.user",记得都要添加)。如果找不到【属性管理器】,在【视图】->【其他窗口】->【属性管理器】中打开。

  在打开的属性页中,找到【VC++目录】,在其中的【包含目录】和【库目录】中添加以下路径,如图所示(记得Debug和Release都要添加这些路径):

包含目录:

E:\OpenCV\2.4.9\build\include;

E:\OpenCV\2.4.9\build\include\opencv;

E:\OpenCV\2.4.9\build\include\opencv2;

库目录:

E:\OpenCV\2.4.9\build\x86\vc11\lib;

2.3 依赖项的添加

  同样是在MicroSoft.Cpp.Win32.user属性页中,找到【链接器】->【输入】。在【输入】中的【附加依赖项】中,添加以下代码:

opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib

  

  如图所示:

  如此就完成了开发环境的配置。

三、测试程序

  新建一个C++ Win32控制台程序,输入以下代码,运行,可得结果。

 #include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace std;
using namespace cv; int _tmain(int argc, _TCHAR* argv[])
{
Mat img = imread("D:\\testImg\\boldt.jpg");
cv::namedWindow("win1");
moveWindow("win1",,);
cv::imshow("win1",img);
waitKey();
}

四、【丢失MSVCP110.DLL】

  运行程序后可能提示【丢失MSVCP110.DLL】的错误,这个问题只需安装各个版的vcredist即可(因为忘记具体是哪一个版本了,所以这里说各个版本,可能是2012版的)。

OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试的更多相关文章

  1. Jenkins入门系列之——02第二章 Jenkins安装与配置

    2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...

  2. k8s入门系列之扩展组件(一)DNS安装篇

    DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...

  3. Linux入门系列1--环境准备及Linux安装

    "工欲善其事.必先利其器",本文作为"Linux零基础入门系列"开篇,将完整演示整个开发环境的安装和配置过程,为后续的开发和实验做好基础准备.如果您已安装好环境 ...

  4. OpenCV2+入门系列(四):计算图像的直方图,平均灰度,灰度方差

    本篇懒得排版,直接在网页html编辑器编辑 在图像处理时,我们常常需要求出图像的直方图.灰度平均值.灰度的方差,这里给出一个opencv2+自带程序,实现这些功能. 直方图 对于直方图,使用cv::c ...

  5. OpenCV2+入门系列(三):遍历图像的几种方法

    根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...

  6. OpenCV2+入门系列(二):图像的打开、创建与显示(命令行)

    前置知识:数字图像的简略知识 这里只是最基础的知识,上课如果稍微听了课的同学可以直接略过不不看. 彩色图像: 对于一副数字图像,对于一副RGB色彩空间的彩色数字图像,它一共有宽X高个像素格子,每个格子 ...

  7. k8s入门系列之扩展组件(二)kube-ui安装篇

    kube-ui是k8s提供的web管理界面,可以展示节点的内存.CPU.磁盘.Pod.RC.SVC等信息. 1.编辑kube-dashboard-rc.yml定义文件[root@master kube ...

  8. 【ML入门系列】(一)训练集、测试集和验证集

    训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...

  9. 【docker 入门 - 01】- Docker 在 Centos7 上安装与测试

    一.学习文档 官网网站: https://www.docker.com 中文网站:http://www.docker-cn.com 官方安装文档:https://docs.docker.com/ins ...

随机推荐

  1. LoadRunner连接Genymotion

  2. Socket与Http通信

    HTTP(超文本传输协议): HTTP是应用层协议,主要用于解决数据包装的问题. HTTP协议是建立在TCP协议之上的一种应用. HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在 ...

  3. noi 1.5 43:质因数分解

    描述 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数. 输入 输入只有一行,包含一个正整数 n.对于60%的数据,6 ≤ n ≤ 1000.对于100%的数据,6 ≤ n ≤ 2*10^ ...

  4. C# 文件压缩加解密

    1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...

  5. 界面使用webview,并且webview里面有图片进行自动切换导致界面上滚动条卡顿。

    最近的项目是用webview做的界面,但是在界面顶端加了android本地动画效果的横向滚动条.当webview里面的图片切换时导致滚动条动画卡顿. 1:setLayerType(View.LAYER ...

  6. 用于基于 RPM 的 Linux 平台的 Java

    成为超级用户,方法是运行 su 并输入超级用户口令. 卸载任何之前安装的 Java 程序包. rpm -e package_name 切换到所需的安装目录.键入:cd directory_path_n ...

  7. Ubuntu下安装Docker

    1. 安装前先检查系统对docker的支持,尽可能安装高版本的系统,比如Ubuntu14.04等,安装前可以先检查系统信息. Docker需要64位机器,需要运行在3.8以上的内核上,需要操作系统支持 ...

  8. ListView遍历每个Item出现NullPointerException的异常

    在使用ListView过程中我们有时候需要遍历取得每个Item项中的一些数据(比如每个Item里面有TextView,需要获取它的文本等等),但是我们在遍历过程中经常会遇到NullPointerExc ...

  9. STL-<queue>-priority queue的使用

    简介: 优先队列是一种容器适配器,优先队列的第一个元素总是最大或最小的(自定义的数据类型需要重载运算符).它是以堆为基础实现的一种数据结构. 成员函数(Member functions) (const ...

  10. [osx] 查看端口被占用

    netstat命令 netstat -an | grep 3306 3306替换成需要grep的端口号 lsof命令 sudo lsof -i :80 -i参数表示网络链接,:80指明端口号,该命令会 ...