vs c++配置opencv(1)
1.vc++配置opencv
环境:
vs2013
准备工作:
1.安装opencv。
opencv各版本间存在API差异,opencv提供相应版本的vc文件,在其安装目录 ..opencv\build\x86 目录下,个人觉得引用与当前使用vs版本最接近的目录文件就可以。opencv安装目录下的引用lib及bin文件 提供x86和x64
2.配置环境变量。
首先在 我的电脑 右键 属性,在系统属性中 选择高级,打开设置环境变量的界面。其中 上半部分为用户变量,下半部分为系统变量。
(1)在用户变量中添加PATH变量,值为:安装目录\opencv\build\x86\vc12\bin;安装目录\opencv\build\x64\vc12\bin
(2)在用户变量中添加OPENCV,值为:安装目录\opencv\build
过程中变量如果存在,将值添加至末尾,以;间隔

配置好了环境变量,接下来配置的是vc++的工程项目了,用来在vc++中使用opencv。
打开vs,新建项目,选择vc++,32位控制台应用程序,工程命名为opencvTest。

在项目工程上右键,属性,打开属性页面。

属性中选择配置信息,配置中配置选项选择为Debug。点击左侧导航中的 vc++目录。编辑其中的包含目录和库目录。
注:此处为单独的项目配置信息,如果想将此配置导出属性文件供各个项目使用,选择vs中的视图-》其他窗口-》属性管理器
在属性管理器项目上右键 =》添加新项目属性表,为属性表命名并存放于公共目录下,以方便后面的项目引用,在属性管理器中双击新建的属性其具体配置和下面的一样。配置好属性表之后,下次使用就可以在属性管理器中 右键=》添加现有属性表,找到属性文件,添加即可使用。此处以单独项目的配置信息为例:

其中,包含目录中引入的路径是 opencv安装路径\opencv\build\include 及其子项。库目录是其lib文件的所在目录,这里把x86和x64的都引入进来了。如出现“error C1083: 无法打开包括文件:“opencv2/core/core_c.h”: No such file or directory”类错误 说明包含目录中的引用出现问题,可能是路径错了,调整引用路径就ok。

这个地方要注意的是,根据当前项目的实际情况选择相应版本的lib目录,本次设置将两个版本的lib文件全部引用了,但实际项目中系统如果发现有两个一样的引用,会默认使用第一个版本,所以如果为32位的应用程序,则x86的放在首位,如果为64位应用程序x64放在首位。如出现错误“ 无法解析的外部符号_XXXXX,该符号在函数_main 中被引用”则是此处位置的问题,调整位置后就ok了。

之后设置连接器的输入项,设置其附加依赖项,此处为opencv的引用lib文件名称。opencv3.4.13附加依赖项


点击应用并确定。至此,opencv在vs中的配置完成,下面我们开始测试在vc++中调用opencv函数完成图片操作。
(1)在项目源文件目录下,点击opencvTest.cpp,修改其代码为:
// opencvTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "cv.h"
#include "highgui.h" using namespace std; int main()
{
IplImage* test;
test = cvLoadImage("图片路径", );
cvNamedWindow("opencv_demo", );
cvShowImage("opencv_demo", test);
cvWaitKey();
cvDestroyWindow("opencv_demo");
}
此处需要注意的是:
#include "stdafx.h" 需放在文件的第一行,否则会得到跳过引用的警告错误,和找不到相关引用方法的错误。
运行项目,执行结果为打开了在项目中引用路径的图片文件。
运行期间 遇到“无法启动此程序,因为计算机中丢失xxx.dll”文件问题,解决方法:项目=》c\c++=》预处理器 ,在预处理器定义中添加_CRT_SECURE_NO_WARNINGS,然后重新启动vs,完成修改。


vs c++配置opencv(1)的更多相关文章
- 配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题[zz]
使用vs2012/2013配置opencv编译出现问题: 1>------ 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ------ 1> ...
- 使用属性表:VS2013上配置OpenCV
以前,windows下配置OpenCV一直不太方便:总是要手动添加lib,添加include,还要配置PATH使得程序运行时候能找到dll文件. 每次新建一个使用OpenCV的工程都要手动添加,很麻烦 ...
- vs配置opencv
配置OpenCv: 一.新建工程 无论是mfc还是控制台程序都可以. 二.下载opencb,安装在非空格路径下面 解压出来有两个文件夹:build和source,主要用到build,build-x86 ...
- 在VS2010下配置OpenCV 2.3
一.下载OpenCV 2.3: http://www.opencv.org.cn/download/OpenCV-2.3.0-win-superpack.exe 二.解压 将下载的Op ...
- VS2010 配置opencv环境
大家在使用opencv的时候肯定会面对这样一个问题:根据官网以及大多数教程提供的方法中,似乎每一次新建一个opencv的新项目以后都需要重新再配置"VC++目录"中的"包 ...
- OpenCV2学习笔记03:Qt中配置OpenCV环境
在Qt中开发基于OpenCV的应用时,需要配置对应函数库到环境变量,这时候我们需要使用到qmake能够识别的变量来指定环境变量. INCLUDEPATH: 用于指定搜索头文件到文件夹路径. LIBS: ...
- vs2012配置opencv及简单测试
为visual studio2012搭建openCV平台,实现打开图片. 实现步骤: 1.1.配置环境变量 基于win7操作系统的环境配置步骤: 1.1.1 计算机—>属性—>更改设置—& ...
- MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)
本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...
- 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法
在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法 对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...
随机推荐
- Android 用属性动画自定义view的渐变背景
自定义view渐变背景,同时监听手势自动生成小圆球. 宿主Activity如下: package com.edaixi.tempbak; import java.util.ArrayList; imp ...
- 电脑硬件扫盲--CPU 显卡
CPU: 主要2个厂商 Inter:core(酷睿) > pentinum(奔腾) > celeron(赛扬) AMD:athlon(速龙) > semporn(闪龙) 主频(GHz ...
- Mysql笔记之 -- 开启Mysql慢查询
Mysql慢查询日志_1--如何开启慢查询日志 Windows下开启MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上 log-slow-qu ...
- 转 C语言面试题大汇总
转 C语言面试题大汇总,个人觉得还是比较全地!!! \主 题: C语言面试题大汇总,个人觉得还是比较全地!!! 作 者: free131 (白日?做梦!) 信 誉 值: 100 ...
- Java中static、this、super、final的用法
一. static 请先看下面这段程序: public class Hello{public static void main(String[] args){//(1)System. ...
- java字符串函数及理解
Java中的字符串也是一连串的字符.但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理允许Java提供十分丰富的功能特性 ...
- [HDU 4741]Save Labman No.004[计算几何][精度]
题意: 求两条空间直线的距离,以及对应那条距离线段的两端点坐标. 思路: 有一个参数方程算最短距离的公式, 代入求即可. 但是这题卡精度... 用另外的公式(先算出a直线上到b最近的点p的坐标, 再算 ...
- linux c 通过文件描写叙述符获取文件名称
在linux中每一个被打开的文件都会在/proc/self/fd/文件夹中有记录,当中(/proc/self/fd/文件描写叙述符号:这个文件是符号文件)的文件就是文件描写叙述符所相应的文件. 而re ...
- C# 对象拷贝问题 =等同于浅拷贝
大家都知道,在C#中变量的存储分为值类型和引用类型两种,而值类型和引用类型在数值变化是产生的后果是不一样的,值类型我们可以轻松实现数值的拷贝,那么引用类型呢,在对象拷贝上存在着一定的难度. 下 ...
- ASP.NET Web编程
runat="server"直接回交服务器,处理数据,又以数据加密后的hidden属性的input控件插入回去,实现表单的状态保存 ruant="server" ...