OPENCV程序内存储器不断增加,求帮助
OPENCV程序内存不断增加,求帮助!
#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]));
}