#include "stdafx.h"   
#include"cv.h"   
#include"highgui.h"   
#include"stdio.h"   
#include <iostream>
 using namespace std;
  
// 实现将拍下来的图片缩放一倍   
IplImage* DoPyrDown(IplImage* image, int filter = IPL_GAUSSIAN_5x5)  
{  
//assert(image->width%2==0 && image->height%2==0);
    // 设置大小缩小一倍   
    CvSize size = cvSize(image->width / 2,image->height / 2);  
    //初始化图片   
    IplImage* outImage = cvCreateImage(size,image->depth,image->nChannels);  
//IplImage* outImage1 = cvCreateImage(size,image->depth,image->nChannels);  
    //实现缩放   
    cvPyrDown(image,outImage);  
CvScalar s;
    int sum=0;
    for (int i=0;i<outImage->height;i++)
    {
        for (int j=0;j<outImage->width;j++)
        {
            s =  cvGet2D(outImage,i,j);
            //cout<<s.val[0]<<" "<<s.val[1]<<" "<<s.val[2]<<endl;
            sum = (s.val[0]+s.val[1]+s.val[2])/3;
            if (sum > 128)
            {
                s.val[0]=s.val[1]=s.val[2]=255;
                cvSet2D(outImage,i,j,s);
            }
            else
            {
                s.val[0]=s.val[1]=s.val[2]=0;
                cvSet2D(outImage,i,j,s);            }
        }
    }
//cvCvtColor(outImage,outImage1,CV_RGB2RGBA);

return outImage;
}    
int main(int argc, char** argv)  
{  
    cvNamedWindow("vedio");  
    CvCapture* capture;  
     // 首先是要通过摄像设备来得到一个CvCapture对象   
    if(1 == argc)  
    {  
        capture = cvCreateCameraCapture(0);  
    }  
    else  
    {  
        capture = cvCreateCameraCapture(atoi(argv[1]));  
    }  
  
    assert(NULL != capture);  
  
    IplImage* frame;  
IplImage* img;
    char keyCode;  
    // 每隔30ms捕捉一次视频图像   
    // 可以设为while(1)  使得实时捕捉视频画面   
    while((keyCode = cvWaitKey(100)))  
    {  
        //表示按下了ESC键,退出   
        if(keyCode == 27)  
        {  
            break;  
        }  
  
        // 得到摄像设备的下一帧图像   
        frame = cvQueryFrame(capture);  
        if(!frame)  
        {  
            break;  
        }  
IplImage* outImage1 = cvCreateImage(cvGetSize(frame),frame->depth,frame->nChannels);  
  //     //     // 将原图拷贝过来   
        cvCopy(frame,outImage1,NULL); 
cvShowImage("vedio",frame);
img = DoPyrDown(outImage1);
img = DoPyrDown(img);        //再次缩小
img = DoPyrDown(img);
char* filename ="C:\\Documents and Settings\\abc\\My Documents\\light test\\Assets\\Standard Assets\\Light Cookies\\test.jpg";
cvSaveImage(filename,img);
cvReleaseImage(&img);      
cvReleaseImage(&outImage1);
          

    }      cvReleaseImage(&frame);  
    cvDestroyAllWindows();  
    return 0;  
}  
怎么内存还是一点点的增加啊,我还有哪里没有释放啊,求大家帮我看看!!谢谢了