【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置
目录(?)[-]
- 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分享知识给大家
- 还是先放出待会儿的测试用图
- 下载和安装OpenCV SDK
- sources里面是源代码想查看完整的源代码需要用cmake来解包如何解包大家百度一下就可以或者下次浅墨来专门讲一讲这里就先不多说了
- 配置环境变量
- 工程包含include目录的配置
- 工程库lib目录的配置
- 链接库的配置
- 在Windows文件夹下加入OpenCV动态链接库
- 最终的测试
- 可能遇到的问题和解决方案
- 找不到coreh
- 无法解析的外部命令
- 关于形如--error LNK2005xxx 已经在 msvcrtdlib MSVCR90Ddll 中定义
- 应用程序无法正常启动0xc000007b
本系列文章由zhmxy555(毛星云)编写,转载请注明出处。
文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337
作者:毛星云(浅墨) 邮箱: happylifemxy@163.com
因为读研期间的研究方向是图像处理,所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容。眼看自己积累到一定的程度了,于是决定开始开设这个OpenCV系列专栏,总结自己所学,也分享知识给大家。
还是先放出待会儿的测试用图:
1.下载和安装OpenCV SDK
在官网:http://opencv.org/上找到OpenCV windows版下载下来。
等一段时间,OpenCV2.4.8近3个多G的文件就解压到了D:\Program Files下。
其中,build里面是使用OpenCV相关的文件,我们如果只是使用OpenCV的话呢,就只用管build里面的内容。下面的sources文件夹你嫌烦,你嫌占硬盘空间,完全可以删掉。但是需要注意的是,官方示例集,也就是samples文件夹里面的示例程序,在sources文件夹里面躺着呢,所以,如果真是要删的话,还是想清楚哦。
sources里面是源代码。想查看完整的源代码需要用cmake来“解包”,如何“解包”大家百度一下就可以,或者下次浅墨来专门讲一讲。这里就先不多说了。
2.配置环境变量
计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加相应的路径。
”…… opencv\build\x86\vc10\bin”
”…… opencv\build\x86\vc10\bin”
和”…… opencv\build\x64\vc10\bin”,
这样,到时候才可以在编译器Win32和X64中来回切换都吃得开,游刃有余~
D:\Program Files\opencv\build\x64\vc10\bin;D:\ProgramFiles\opencv\build\x86\vc10\bin
3.工程包含(include)目录的配置
之前看过的好多博文都说“每次新建工程都要重新配置”,其实不用这样麻烦的。
看我之前DirectX配置的相关博文的朋友们应该都知道,有一招叫属性管理器,点进去,到
在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories(反键属性,或者双击)即可打开属性页面。
D:\Program Files\opencv\build\include
D:\Program Files\opencv\build\include\opencv
D:\Program Files\opencv\build\include\opencv2 这三个目录。
当然,这是之前把OpenCV解压到D:\Program Files\下的情况。实际的路径还要看你自己把OpenCV解压到了哪个目录下,根据实际情况来调节。
4.工程库(lib)目录的配置
添加上D:\ProgramFiles\opencv\build\x86\vc10\lib这个路径。
这里选择x86还是x64是一个常常令人困惑的问题。当然,对于32位操作系统,铁定就是选x86了。
如果是64位操作系统,很多童鞋会想当然自作聪明地选择x64,其实不然。正确的理解是这样的:
不管你是32位还是64位操作系统,只用管你用win32编译器还是X64编译器。
其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于你在编译你的程序的时候是使用那个编译器。
编译器选的是X64,就用X64。不过一般情况下,都是用的win32的X86编译器。所以,无论32还是64位操作系统,配置文件最好都选择x86版的
另外,这里的vc10表示vs2010,如果是其他版本的visual studio,稍微要微调一下。
5.链接库的配置
需要注意的是,所粘贴内容即为D:\opencv\build\x86\vc10\lib下所有lib库文件的名字;其中的248代表我们的OpenCV版本为2.4.8,若是其他版本的配置则在这里要进行相应的更改,比如说2.4.6版的OpenCV,那么这里的opencv_calib3d248d.lib就要改成opencv_calib3d246d.lib了.
Debug文件库名有d结尾,Release没有,如 opencv_ts248d.lib和opencv_ts248.lib
不过我一般是在这里把带d和不带d的统统写在这里,因为这里是以后创建所有工程时都会继承的公共属性。
注意:按照如上的这种方式来配置,也许会出现debug下可以运行但是release下不能运行的情况(诸如图片载入不了,报内存错误),这算是OpenCV自2.4.1以来的一个bug。如果出现上述情况,打开当前工程(注意是当前工程的属性页,不是通用属性页)的属性页,debug或者release哪个报错,就把对应的带d或不带d的lib添加到【“当前”工程属性】->【链接器】->【输入】->【附加的依赖项】下即可。
——————浅墨 2014年3月17日注
类似错误如图:
6.在Windows文件夹下加入OpenCV动态链接库
这一步是各种介绍OpenCV的配置的相关博文中都没写出来的。根据这些博文配置出来的环境,在运行基于OpenCV的程序的时候,往往会得到这样类似的结果:
D:\Program Files\opencv\build\x86\vc10\bin目录下。
到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到C:\Windows下面,【Alt+V】复制,简单粗暴地就完成了。
7.最终的测试
新建一个空项目的控制台应用程序,新建一个cpp文件,然后粘贴如下代码:
[cpp] view plaincopyprint?
- #include<iostream>
- #include <opencv2/core/core.hpp>
- #include <opencv2/highgui/highgui.hpp>
- using namespace cv;
- int main()
- {
- // 读入一张图片(游戏原画)
- Mat img=imread("pic.jpg");
- // 创建一个名为 "游戏原画"窗口
- cvNamedWindow("游戏原画");
- // 在窗口中显示游戏原画
- imshow("游戏原画",img);
- // 等待6000 ms后窗口自动关闭
- waitKey(6000);
- }
放置一张名为pic.jpg的图片到工程目录中,然后点击“运行“按钮,如果配置成功,就不会报错,得到预想的运行结果:
为了大家的考虑,还是把工程文件发一下吧,虽然这次只有简单的几句代码:
【OpenCV+VS2010开发环境配置 测试用例 by浅墨】下载
7.可能遇到的问题和解决方案
呼,生活不可能是一帆风顺的,我们的配置过程也是。浅墨在几次的配置过程中,出现了如下的几种典型问题,我相信你可能会出现,就在这里集中列举一下吧,希望能为大家解惑:
1. 找不到core.h
如果你的版本是2.4.6。在这个版本下,opencv根文件夹下面就有个include,但我们配置的时候如果包含的是他就坑爹了。
2.无法解析的外部命令
这个问题其实上面有过解释了,不管你是32位还是64位操作系统,只用管你用win32编译器还是X64 编译器。
其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于你在编译你的程序的时候是使用那个编译器。
编译器是X64,就用X64。不过一般情况下,都是用的win32的X86编译器。所以,
无论32还是 64位操作系统,配置文件最好都选择x86版的。
3.关于形如--error LNK2005:xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义
4. 应用程序无法正常启动0xc000007b
Lib包含的问题。也许你同时包含了X86和X64的,或者包含出错错了。
5.明明图片路径是对的,却载入不进去图片,提示指针越界,有未经处理的异常
或者打开当前工程(注意是当前工程的属性页,不是通用属性页)的属性页,debug或者release哪个报错,就把对应的带d或不带d的lib添加到【“当前”工程属性】->【链接器】->【输入】->【附加的依赖项】下即可。
好了,OpenCV的配置大概就是这些。
转载于:https://www.cnblogs.com/daochong/p/7420498.html
【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置相关推荐
- OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...
- 【转】【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅 ...
- 转载:【opencv入门教程之六】创建Trackbar图片对比度、亮度值调整
[OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调整 浅墨_毛星云 2014-03-18 21:43:18 103746 收藏 21 最后发布:2014-03-18 ...
- 转载:【OpenCV入门教程之五】 分离颜色通道多通道图像混合
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
[OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...
- 转载:【opencv入门教程之三】:图片的载入|显示|输出
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
- 转载:【opencv入门教程之三】:组件结构
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星 ...
- 转载:【opencv入门教程之一】:配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅 ...
- 【OpenCV入门教程之五】 分离颜色通道多通道图像混合(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...
最新文章
- [Android Studio 权威教程]Windows下安装Android Studio
- VS IISExpress REST DELETE 405 Method Not Allowed
- 高性能、低成本的高防 IP 产品能现实吗?
- 在word文档里提取出所有的邮箱地址
- 【BZOJ1045】【codevs1868】糖果传递,数学贪心
- java非法字符65288,spring-boot使用内置tomcat时http请求非法字符过滤的问题
- angular--Observable总结
- 线程的故事:3 位“母亲”成就了优秀的我!
- DevExpress之TreeList用法
- arduino串口绘图_Arduino 串口数据可视化
- Java中什么不是线程状态_并发基础(四) java中线程的状态
- 泰迪杯A题通讯产品销售和盈利能力分析一等奖作品
- SAI2和PS如何查看当前鼠标位置内容的图层
- Android Project Butter 黄油计划
- 智能合约逆向心法1(案例篇)——34C3_CTF题目分析
- Go语言之分支结构(十一)
- 【华为HCIE证书难考吗?】
- vue从服务器获取csv文件,前端 VUE 解析 CSV 文件
- POI设置和读取excel分组信息,多级分组设置
- sql字段修改及查看建表语句
热门文章
- (二)使用预定义模型 QStringListModel例子
- 【转】QDockWidget 停靠窗口和工具栏
- 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)
- Linux清除cache的几种方式
- Redis-数据结构与对象-对象
- Azure VMSS (1) 入门
- 网页登陆注册(jsp实现)验证码
- vue v2.5.0源码-初始化流程
- struts2 OGNL表达式
- Linux学习笔记7-磁盘管理