使用cvPyrDown()完成创建一幅宽度和高度为输入图像一半尺寸的图像。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
IplImage * doPyrDown(IplImage * in,int filter = CV_GAUSSIAN_5x5)
{
assert(in->width%2==0 && in->height%2==0);
IplImage *out = cvCreateImage(cvSize(in->width/2,in->height/2), in->depth, in->nChannels);
cvPyrDown(in, out);
return out;
}
int main(int argc, const char * argv[]) {
// insert code here...
const char * ImageLocation = "/Users/linwang/Downloads/Lena.jpg";
IplImage * image = cvLoadImage(ImageLocation);
cvNamedWindow("Old-Example");
cvShowImage("Old-Example", image);
IplImage * out = doPyrDown(image);
cvNamedWindow("New-Window");
cvShowImage("New-Example", out);
cvReleaseImage(&out);
cvWaitKey(0);
cvDestroyWindow("Old-Example");
cvDestroyWindow("New-Example");
cout<<"HAHA"<<endl;
return 1;
}
我们分配新的空间时是从旧的图像中读取所需的信息。