【OpenCV第一篇】安装OpenCV
【OpenCV第一篇】安装OpenCV
本篇主要介绍如何下载OpenCV安装程序,如何在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小例子。
《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764
可以到http://www.opencv.org.cn/index.php/Download,然后选一个较新版本下载。我下的是V2.3.1版本,下载地址是:
http://www.opencv.org.cn/download/OpenCV-2.3.1-win-superpack.exe
下载完成后,双击运行exe,选择输出目录,我选择的是D:\opencv。然后解压缩就完成了安装。安装过程如下图所示:
在“我的电脑”右击弹出“系统属性”对话框,选择“高级”再点击“环境变量”,然后再编辑path,在“编辑用户变量”对话框的变量值输入以下三条,注意用“;”来分开。
D:\opencv\opencv\build\x86\vc9\bin;
D:\opencv\opencv\build\x86\mingw\bin;
D:\opencv\opencv\build\common\tbb\ia32\vc9;
在VS2008中点击“工具”,再点击“选项”,然后选择“项目和解决方案”,手动加入库文件,引用文件和包含文件即可完成OpenCV在VS2008的导入。
下面是最简单的OpenCV使用例子,功能也很简单——加载图像文件并显示出来。代码如下:
plaincopy
- //显示图像文件
- #include <opencv2/opencv.hpp>
- using namespace std;
- #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
- int main()
- {
- const char *pstrImageName = "冲浪大师赛001.jpg";
- const char *pstrWindowsTitle = "OpenCV第一个程序(http://blog.csdn.net/MoreWindows)";
- //从文件中读取图像
- IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
- //创建窗口
- cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
- //在指定窗口中显示图像
- cvShowImage(pstrWindowsTitle, pImage);
- //等待按键事件
- cvWaitKey();
- cvDestroyWindow(pstrWindowsTitle);
- cvReleaseImage(&pImage);
- return 0;
- }
对代码中的主要函数进行下讲解:
1.创建窗口 cvNamedWindow
2.在指定窗口中显示图像 cvShowImage
const char* name, const CvArr* image );
3.等待按键事件 cvWaitKey
函数名称:cvWaitKey
函数功能:等待按键事件
第一个参数:延迟的毫秒数,当delay<=0时表示无限等待。
函数返回值:
如果超过指定时间则返回-1,否则返回被按键的值。
编译,居然出错了!!错误信息如下:
1>正在链接...
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvReleaseImage,该符号在函数_main 中被引用
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvDestroyWindow,该符号在函数_main 中被引用
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvWaitKey,该符号在函数_main 中被引用
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvShowImage,该符号在函数_main 中被引用
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvNamedWindow,该符号在函数_main 中被引用
1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvLoadImage,该符号在函数_main 中被引用
现在如何解决这个问题了?既然是在链接时出的错,说明肯定有静态库没有被编译器找到。因此我们在VS2008中点击“项目”,再点击“属性”,依次展开“配置属性”-->“链接器”-->“输入”在“附加依赖项中”添加如下静态文件。
opencv_calib3d231d.lib opencv_contrib231d.lib opencv_core231d.lib opencv_features2d231d.lib opencv_flann231d.lib opencv_gpu231d.lib opencv_highgui231d.lib opencv_imgproc231d.lib opencv_legacy231d.lib
opencv_ml231d.lib opencv_objdetect231d.lib opencv_ts231d.lib opencv_video231d.lib
再编译,成功。程序运行结果如下图所示:
呵呵,很酷的冲浪~~
下面列出OpenCV入门指南目录,方便大家查看。
11.《【OpenCV入门指南】第十一篇鼠标绘图》
12.《【OpenCV入门指南】第十二篇无法运行OpenCV程序?》
13.《【OpenCV入门指南】第十三篇人脸识别》
14.《【OpenCV入门指南】第十四篇 Haartraining》即将发布
转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8225783
《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764
【OpenCV第一篇】安装OpenCV的更多相关文章
- 【OpenCV入门指南】第一篇 安装OpenCV
http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...
- OpenCV 第一课(安装与配置)
OpenCV 第一课(安装与配置) win10,opencv-2.4.13, 安装, vs2013, 配置 下载安装软件 官网OpenCV下载地址下载最新版本,我下载的是opencv.2.4.13,然 ...
- OPENCV第一篇
了解过之前老版本OpenCV的童鞋们都应该清楚,对于OpenCV1.0时代的基于 C 语言接口而建的图像存储格式IplImage*,如果在退出前忘记release掉的话,就会照成内存泄露.而且用起来超 ...
- Opencv入门-第一回-梦牵机器视觉翼,初识Opencv域(安装Opencv)
各位看官,您是不是瞅着Opencv进来的?(你这不是废话吗>_>) 这Opencv(开源计算机视觉库)啊,说来话长,最初是上个世纪末(1999年)由Intel建立起来的.近十多年人工智能这 ...
- 第一篇 -- 安装和配置PyQt5
我的电脑环境是:Win10 + Python3.6.4 + JetBrains PyCharm 2017.3.2 x64 之前用tkinter写界面,现在学习如何用PyQt5写界面. 安装PyQt5: ...
- OpenResty 安装及使用(第一篇安装)
OpenResty搭建 1.openResty介绍 OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模 ...
- Node 之 Express 学习笔记 第一篇 安装
最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...
- NODEJS环境搭建 第一篇 安装和部署NODEJS
一.下载安装文件 根据自己当前系统环境,下载相对应的安装文件 https://nodejs.org/en/download/ 二.双击安装 都傻瓜式的安装步骤,一步一步安装就好了. 三.检查安装结果 ...
- Oracle学习第一篇—安装和简单语句
一 安装 10G ----不适合Win7 Visual Machine-++++Visual Hard Disk 先安装介质(VM)---便于删除 11G-----适合Win7 1 把win64_1 ...
随机推荐
- 从实验室搬到宿舍后可以上QQ但打不开网页
如果你是属于如标题这种情况:也就是从实验室换到宿舍或者从宿舍换到实验室,在之前的地方可以上网,但换了地方后就出现只能上QQ而不能打开网页的情况.此时,首先考虑DNS配置,很有可能是因为你搬到了宿舍,但 ...
- linux学习资料
鸟哥的Linux私房菜 基础学习篇(第三版) http://book.51cto.com/art/201007/211888.htm 鸟哥的Linux私房菜——服务器架设篇 http:// ...
- 使用Thread类可以创建和控制线程
1.创建线程 static void Main(string[] args) { /* Thread类 * 创建控制线程 * 其构造函数接受ThreadStart和ParameterizedThrea ...
- Dapper ORM 用法
假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.Dapper的优势:1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编译后就40K ...
- 【HTML5 3】《html5 开发精要与实例讲解》 step2 -- 结构元素 (待续)
主要内容:通过 一个博客网站和一个企业网站的制作 展示如何运用HTML5中的各种 结构元素,构建出一个语义清晰,结构分明的Web3.0时代的网站. 案例1:用HTML5中的结构元素构建一个博客网站 疑 ...
- Java协变返回类型
今天看到句话:“支持重写方法时返回协变类型”. 那么什么事协变类型?在网上找了找资料,大体上明白了. Java 5.0添加了对协变返回类型的支持,即子类覆盖(即重写)基类方法时,返回的类型可以是基类方 ...
- iOS 多线程讲解
//同步操作用途 dispatch_queue_t queue = dispatch_get_global_queue(0, 0); dispatch_sync(queue, ^{ NSLog(@&q ...
- Objective-C 高级编程:iOS与OS X多线程和内存管理
<Objective-C 高级编程:iOS与OS X多线程和内存管理> 基本信息 原书名: Pro Multithreading and Memory Management for iOS ...
- 正则转nfa:完成
太累了,感觉不会再爱了.问题已经解决,具体的懒得说了. #include "regular_preprocess.h" //这个版本终于要上nfa了,好兴奋啊 //由于连个节点之间 ...
- hdu-5703 Desert(水题)
题目链接: Desert Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Pr ...