根据opencvchina的学习,总结一下第一个OpenCV版的HelloWorld,应该是Hello,Lena! 现在开始吧。。。。
1、首先对一些数据结构进行介绍:
cvLoadImage(char* filename,int flags=CV_LOAD_IMAGE_COLOR)
功能:通过文件名确定被加载图像的格式,并且该函数在内部分配图像数据结构所需要的内存空间 ,支持的格式有:BMP,DIB,JPEG,JPE,PNG,PBM,PGM,PPM,SR,RAS,TIFF
filename :图像所在路径
flags: #define CV_LOAD_IMAGE_UNCHANGED -1 如图像颜色不变
#define CV_LOAD_IMAGE_GRAYSCALE 0 灰度图像,单通道
#define CV_LOAD_IMAGE_COLOR 1 彩色图像(3通道图像)
此外,输入图像格式可以为8位无符号,16位无符号,32位有符号或者32位浮点型
#define CV_LOAD_IMAGE_ANYDEPTH 2
#define CV_LOAD_IMAGE_ANYCOLOR 4
如果要想载入最真实地图像,选用 CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR(也可以是: 2 | 4)
Int cvNamedWindow(char* name,int flags)
// name:窗口的标志,每个窗口有唯一的标志,如果已经有同名的窗口,则该函数什么也不干
//Flags: CV_WINDOW_AUTOSIZE ,会根据图像大小自动调节窗口大小;如果是0,则窗口大小不变
cvShowImage(char* name,IplImage* dst)
//功能:在指定窗口上显示图像
//name:窗口的标志,这个标志是cvNamedWindow函数设定的;dst是被显示的图像
Int cvWaitKey(int key)
//里面的参数key如果小于等于0,则等待用户按键输入;如果大于0(比如50),则在此处暂停50ms .
2、代码如下:
#include "stdafx.h"#include"highgui.h" //包含头文件
#include"cv.h"
#include"cxcore.h"
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *src = cvLoadImage("Lena.jpg",CV_LOAD_IMAGE_UNCHANGED | CV_LOAD_IMAGE_GRAYSCALE);
cvNamedWindow("first");
cvShowImage("first",src);
cvWaitKey(0);
cvReleaseImage(&src); //释放图像空间 ,为防止内存泄漏,注意要进行空间的释放,
cvDestroyWindow("first"); //销毁窗口 ,
return 0;
}
结果如下: