Opencv学习_2 (opencv结构&显示图像)
opencv结构:
1:主要包含:
cxcore cv machine learning highgui cvcam cvaux
2:cxcore:
基础结构:CvPoint,CvSize, CvScalar等
数组结构:cvCreateImage,cvCreateMat等
动态结构:CvMemStorage,CvMemBlock等
绘图函数: cvLine,cvRectangle等
数据保存和运行时类型信息:CvFileStorage,cvOpenFileStorage等
错误处理和系统函数:cvGetErrStatuscvAlloc,cvFree等
3:cv
图像处理:cvSobel,cvCanny等
结构分析:ContourArea等
运动分析和目标跟踪:cvMeanShift
模式识别: CvHaarFeature
摄像头定标与三维重建:cvCalibrateCamer2
4: Machine Learning(ML)
包含许多聚类、分类和数据分析函数。如Bayes分类器,K邻近算法,支持向量机,决策树,神经网络等
5:HighGUI
图像界面函数:cvNamedWindow
读图像和保存图像:cvLoadImage,cvSaveImage
读视频和写视频:cvCreateFileCapture等
6:cvcam
摄像机接口,在Opencv1.0以后的版本中已经被移除
7:cvaux
该模块中一般存放一些即将被淘汰的算法和函数(如基于嵌入式隐马尔科夫的人脸识别算法),还包含一些实验性的算法和函数(前景检测,背景剔除)
显示图像:
基于opencv,我们可以读取各种图像文件,视频文件,还可以读取摄像头。这些功能是Opencv开发包中HighGUI工具集的一部分。下面,我们就使用其中的一些功能来实现如何显示一副图像
代码:
#include <iostream>#include "cv.h"#include "highgui.h"#include "cxcore.h"using namespace std;using namespace cv;int main(){IplImage * src = cvLoadImage("F:\\11.jpg",-1); // 这里的\\代表转义cvNamedWindow("show",0);cvShowImage("show", src);cvWaitKey(0);cvReleaseImage(&src);cvDestroyWindow("show");return 0;}1: 载入图片:IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
其中
filename :要被读入的文件的文件名。
flags :指定读入图像的颜色和深度:1-color , 0- gracy , -1--unchanged, 2--anydepth ,4-anycolor
函数从指定文件读入图像,返回读入图像的指针
2:创建窗口: int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );
其中
name:窗口的名字
flags: 默认为CV_WINDOW_AUTOSIZE ,等于1,此时不能用鼠标拖动窗口的大小;设为0,则可以拖动窗口的大小
3:等待按键时间: int cvWaitKey( int delay=0 );
其中
delay≤0,则一直等待下去,知道用户按下按键,此时返回按键的ascii码,如果delay>0,则等待delay ms,此时返回-1,如果期间用户按下了按键,则等待delay ms后,返回按键的ascii码。
作者:小村长 出处:http://blog.csdn.net/lu597203933 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:小村长zack, 欢迎交流!)