使用cvPryDown创建一幅宽度和高度为输入图像一半尺寸的图像。
// example_p28.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
IplImage* doPryDown( IplImage* in, int filter = IPL_GAUSSIAN_5x5)
{
assert( in->width%2 == 0 && in->height%2 == 0);//assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行
IplImage* out =cvCreateImage(cvSize( in->width/2, in->height/2), in->depth, in->nChannels );
cvPyrDown( in, out );
return( out );
}
int _tmain(int argc, _TCHAR* argv[])
{
IplImage* img =cvLoadImage( "1.jpg" );
cvNamedWindow("Example5.1",CV_WINDOW_AUTOSIZE);
cvNamedWindow("Example5.2",CV_WINDOW_AUTOSIZE);
cvShowImage( "Example5.1", img);
img = doPryDown( img, IPL_GAUSSIAN_5x5 );
cvShowImage( "Example5.2", img);
cvWaitKey(0); //函数的功能是使程序暂停,等待用户触发一个按键操作。如果参数设置为一个正数,则暂停一段时间,时间长为该整数值个毫秒单位,然后继续
//执行程序,即使用户没有按下任何键。当参数设置成0或负数时,程序将一直等待用户触发按键操作。
cvReleaseImage( &img );
cvDestroyWindow( "Example5.1" );
cvDestroyWindow( "Example5.2" );
return 0;
}
效果如下图: