《OpenCV学习笔记》---第一篇 第一个程序
2016-01-29 11:55
239 查看
《OpenCV学习笔记》---第一篇 第一个程序
前言
自学OpenCV,写写笔记,路过的多多指点。
1.OpenCV的安装
OpenCV的安装网上有很多资料,这里就不多提了。我用的是OpenCV2.4.11, 开发工具是VS2010。在编写第一个OpenCV程序的时候遇到的第一个问题就是怎么配置工程。
2.配置工程
我说一下在VS2010下,OpenCV工程的配置。 Add in the system Path: C:\opencv\build\x86\vc10\bin; Project->Project Property->Configuration Properties->VC++Directories ->Include Directories: C:\opencv\build\include\opencv C:\opencv\build\include\opencv2 C:\opencv\build\include Project->Project Property->Configuration Properties->VC++Directories ->Library Directories: C:\opencv\build\x86\vc10\lib Project->Project Property->Configuration Properties->Linker->Input: opencv_calib3d2411.lib opencv_contrib2411.lib opencv_core2411.lib opencv_features2d2411.lib opencv_flann2411.lib opencv_gpu2411.lib opencv_highgui2411.lib opencv_imgproc2411.lib opencv_legacy2411.lib opencv_ml2411.lib opencv_nonfree2411.lib opencv_objdetect2411.lib opencv_ocl2411.lib opencv_photo2411.lib opencv_stitching2411.lib opencv_superres2411.lib opencv_ts2411.lib opencv_video2411.lib opencv_videostab2411.lib 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 这样工程就配置好了,可以编写第一个程序了。
3.第一个OpenCV程序。
#include <opencv2/opencv.hpp> #include <opencv2/legacy/compat.hpp> using namespace std; #include <cv.h> #include <highgui.h> int main() { const char *pstrImageName = "图.bmp"; const char *pstrWindowsSrcTitle = "第一个OpenCV程序"; //从文件中读取图像 IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED); //创建窗口 cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_NORMAL); //在指定窗口中显示图像 cvShowImage(pstrWindowsSrcTitle, pSrcImage); //等待按键事件 cvWaitKey(); cvDestroyWindow(pstrWindowsSrcTitle); cvReleaseImage(&pSrcImage); return 0; }
对主要函数做讲解:
1.cvLoadImage
函数功能:打开图片
函数原型:
IplImage* cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR))
参数说明:
第一个参数是图片路径,该函数可以读取绝大多数格式类型的图片,包括BMP,DIB,JPEG,JPE,PNG,PBM,PGM,PPM,SR,RAS和TIFF。
第二个参数是指定加载图片的颜色类型,可选参数有:
CV_LOAD_IMAGE_UNCHANGED , 原样输出
CV_LOAD_IMAGE_GRAYSCALE , 转成单通道图输出
CV_LOAD_IMAGE_COLOR, 转成3通道图输出
CV_LOAD_IMAGE_ANYDEPTH, 转成8bit单通道图输出
CV_LOAD_IMAGE_ANYCOLOR , 转成8bit 3通道图输出
2.cvNamedWindow
函数功能:创建窗口
函数原型:
int cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOSIZE) )
参数说明:
第一个参数:窗口名称,也是窗口标识,类似于指针。
第二个参数:窗口属性,可选参数有:
CV_WINDOW_NORMAL ,可手动调节窗口大小
CV_WINDOW_AUTOSIZE ,不可手动调节窗口大小,窗口大小有内容大小决定
CV_WINDOW_OPENGL ,窗口支持OpenGL
3.cvShowImage
函数功能:在指定窗口中显示指定图像
函数原型:
void cvShowImage( const char* name, const CvArr* image )
参数说明:
第一个参数:窗口名称
第二个参数:需显示的图片
4.cvWaitKey
函数功能:等待按键事件
函数原型:
int cvWaitKey(int delay CV_DEFAULT(0))
参数说明:
第一个参数:延迟毫米数,为0时无限等待
返回值:若超时没有,则返回-1,否则返回被按键的值
5.cvDestroyWindow
函数说明:关闭窗口
函数原型:
void cvDestroyWindow( const char* name )
参数说明:
第一个参数:窗口名称
这里提一下函数:
void cvDestroyAllWindows(void),可以一次性关闭所有窗口
6.cvReleaseImage
函数说明:释放图像资源
函数原型:
void cvReleaseImage( IplImage** image )
参数说明:
第一个参数:图片对象指针
编译,程序运行结果如下:
相关文章推荐
- 提升tomcat服务器性能的六条经验
- 日TOP排名
- Hadoop 2.x伪分布式环境搭建
- 大型网站系统架构的演化
- Linux查看CPU和内存使用情况
- 月TOP 模型-季度到年
- shell脚本的符号说明
- (转)网站隔几天打不开,多次重启Apache解决办法
- OpenCL入门
- Kubernetes集群管理部署过程(centos7)
- grep 命令系列:使用 grep 命令来搜索多个单词
- CentOS下php安装mcrypt扩展
- linux命令-touch
- OpenCV Mat数据类型及位数总结
- bash shell基础语法
- Linux如何实现开机启动程序详解
- Linux内核驱动加载过程
- hadoop学习记录之hadoop版本升级问题解决
- 季度TOP模型
- linux后台进程管理工具supervisor