OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试
这里假设看到这篇文章的人都已经对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中,解压后的文件结构应该是这样的。
二、开始配置
环境的配置分为几个方面
- 环境变量配置;
- VS中【包含目录】、【引用目录】、【库目录】的添加;
- 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的安装与测试的更多相关文章
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- Linux入门系列1--环境准备及Linux安装
"工欲善其事.必先利其器",本文作为"Linux零基础入门系列"开篇,将完整演示整个开发环境的安装和配置过程,为后续的开发和实验做好基础准备.如果您已安装好环境 ...
- OpenCV2+入门系列(四):计算图像的直方图,平均灰度,灰度方差
本篇懒得排版,直接在网页html编辑器编辑 在图像处理时,我们常常需要求出图像的直方图.灰度平均值.灰度的方差,这里给出一个opencv2+自带程序,实现这些功能. 直方图 对于直方图,使用cv::c ...
- OpenCV2+入门系列(三):遍历图像的几种方法
根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...
- OpenCV2+入门系列(二):图像的打开、创建与显示(命令行)
前置知识:数字图像的简略知识 这里只是最基础的知识,上课如果稍微听了课的同学可以直接略过不不看. 彩色图像: 对于一副数字图像,对于一副RGB色彩空间的彩色数字图像,它一共有宽X高个像素格子,每个格子 ...
- k8s入门系列之扩展组件(二)kube-ui安装篇
kube-ui是k8s提供的web管理界面,可以展示节点的内存.CPU.磁盘.Pod.RC.SVC等信息. 1.编辑kube-dashboard-rc.yml定义文件[root@master kube ...
- 【ML入门系列】(一)训练集、测试集和验证集
训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...
- 【docker 入门 - 01】- Docker 在 Centos7 上安装与测试
一.学习文档 官网网站: https://www.docker.com 中文网站:http://www.docker-cn.com 官方安装文档:https://docs.docker.com/ins ...
随机推荐
- iOS,非视图类方法
1.判断类的实例 2.获取当前最高层Window 3.获取当前app是否活跃 4.允许所有请求 5.判断设备是否越狱 6.移除字符串换行符和空格 7.iOS注释方法或属性废弃或不可用 8.本地通讯录操 ...
- Javascript Promise入门
是什么? https://www.promisejs.org/ What is a promise? The core idea behind promises is that a promise r ...
- sort
sort -n -k2 filename 按第二列,按顺序排列 sort -nr -k2 filename 按第二列,按反向顺序排列
- 使用Vue构建中(大)型应用
init 首先要起一个项目,推荐用vue-cli安装 $ npm install -g vue-cli $ vue init webpack demo $ cd demo $ npm install ...
- eclipse设置汉化
1. 打开eclipse->help->install new software 2. 打开http://www.eclipse.org/babel/downloads.php,,,找到相 ...
- Qt之添加QLabel的点击事件
QLabel功能为显示了一个字符串或者图片等信息,它本身没有click信号.也就不能够响应click点击事件,有什么办法来实现来,我们可以子类化QLabel,实现MouseXXXEvent.class ...
- 【笔记】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意义及运用
这几天看书看到这几个属性做几个笔记 parentNode:顾名思义,就是获取某元素的父元素等同于jq的parent(). *注意一下,在调用parentNode 方法的时候 调用的对象必须是用ID 或 ...
- CSS 设置背景透明度,不影响子元素
由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素. 解决方法: 1> 使用 RGBA Example .classname { /* RGBa, 透明度0.6 ...
- 关于IE8
IE8对H5,CSS3,还有脚本的兼容都存在各种问题,调padding的时候老是忘记IE盒子跟W3C盒子模型不一样: IE8兼容CSS3透明度的方法,采用滤镜实现: (1)filter ...
- oracle应用启动时常会报未知服务名
修改/etc/hosts文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4#::1 loca ...