OpenCV第一课
1、OpenCV下载地址:http://opencv.org/downloads.html
因为本人电脑装的是vs2010,所以下载的是opencv-2.4.11.exe(vc10、vc11、vc12),最新版3.0没有vc10;
OpenCV%代表安装目录,vc10是vc的版本,可以查看目录支持什么版本
- 32位系统 & VC2010,库目录 %
OpenCV%\build\x86\vc10\lib
- 64位系统 & VC2010,库目为:%
OpenCV%\build\x64\vc10\lib
解压:D:\opencv
2、配置
(1).创建一个MFC的对话框程序:
打开 项目---属性
配置属性”->“VC++目录”->“包含目录”,包含
D:\opencvD:\opencv\build\include
D:\opencv\build\include\opencv
D:\opencv\build\include\opencv
(3).配置lib目录(此处是Debug版本)
//附加包含目录D:\opencv\build\x86\vc10\lib (说明xxxxxd.lib是Debug版本, xxxxx.lib是Release版本)
opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_ml2411d.lib
opencv_nonfree2411d.lib
opencv_objdetect2411d.lib
opencv_ocl2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_superres2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_videostab2411d.lib
(4).引入lib对应的dll
3、显示第一个图片
void CCOpenCvDemoDlg::OnBnClickedButton3()
{
//显示图像文件
const char *pstrImageName = "F:\\VSProject\\COpenCvDemo\\image\\second.jpg";
const char *pstrWindowsTitle = "OpenCV第一个程序";
//从文件中读取图像
IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED); //创建窗口
cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE); //在指定窗口中显示图像
cvShowImage(pstrWindowsTitle, pImage); //等待按键事件
cvWaitKey(); cvDestroyWindow(pstrWindowsTitle);
cvReleaseImage(&pImage);
}
对代码中的主要函数进行下讲解:
1.创建窗口 cvNamedWindow
函数名称:cvNamedWindow
函数功能:创建窗口
函数原型:
int cvNamedWindow( const char* name, int
flags=CV_WINDOW_AUTOSIZE );
参数说明:
第一个参数表示窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。被创建的窗口可以通过它们的名字被引用。
第二个参数表示窗口属性标志。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像。
函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。
注意:
如果已经存在这个名字的窗口,这个函数将不做任何事情。
2.在指定窗口中显示图像 cvShowImage
函数名称:cvShowImage
函数功能:在指定窗口中显示图像
函数原型:
void cvShowImage( const char*
name, const CvArr* image );
参数说明:
第一个参数:窗口的名字。
第二个参数:被显示的图像。
3.等待按键事件 cvWaitKey
函数名称:cvWaitKey
函数功能:等待按键事件
函数原型:
int cvWaitKey( int delay=0
);
参数说明:
第一个参数:延迟的毫秒数,当delay<=0时表示无限等待。
函数返回值:
如果超过指定时间则返回-1,否则返回被按键的值。
最新文章
- java-Filter过滤器
- iOS - Swift 面向对象语法
- VMware系统运维(十四)部署虚拟化桌面 Horzion View Manager 5.2 配置许可
- My_Plan
- Web APP 随笔
- 【Deep Learning学习笔记】Efficient Estimation of Word Representations in Vector Space_google2013
- 基于FFmpeg和Qt的播放器 QtAV库
- Codeforces Round #316 (Div. 2)
- mysql 数据库连接(远程和本地原理同样)
- CSS技巧!像table一样布局div
- LeetCode204:Count Primes
- SAX,DOM,JAXP,JDOM,DOM4J比较
- Angular--ui-router的使用
- XSD详解三 - 复合元素+总结篇
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——VoiceRecorder控件的使用方式.Net移动开发
- 一些常用的meta标签
- (PMP)第2章-----项目运行环境
- SQL server 2012 数据库日志缓存过大
- VS2017使用文档
- Alpha冲刺(5/10)——2019.4.28
热门文章
- 为什么在 Java 中用 (low+high)>;>;>;1 代替 (low+high)/2 或 (low+high)>;>;1 来计算平均值呢?好在哪里?
- IOS8 UIAlertController 弹框
- RTSP/RTMP/HLS/HTTP流媒体播放器EasyPlayer
- requests 中文乱码
- Golang RPC 性能测试
- java之异常的捕获及处理
- 配置tomcat,访问端口改为80
- FFMPEG more samples than frame size (avcodec_encode_audio2) 的解决方案
- the art of seo(chapter one)
- Linux 修改所属组与所属人