怎么提取连续的两帧图像做帧间差
// 图像处理
/*参数说明: rgbbuffer :rgb 数据
graybuffer :灰度数据 会读数据没有被复制过,所以对这个传入的数据必须进行内存copy
imagewideth 图像宽
imageheight 图像高度*/
BOOL CRealClientDemoDlg::ImageProcess(char *rgbbuffer,char *graybuffer,int imagewideth ,int imageheight)
{
static int n=1;
IplImage* image0=cvCreateImage(cvSize(imagewideth,imageheight),8,1);
IplImage* image1=cvCreateImage(cvSize(imagewideth,imageheight),8,3);
IplImage* image=cvCreateImage(cvSize(imagewideth,imageheight),8,3);
IplImage* image2=cvCreateImage(cvSize(imagewideth,imageheight),8,3);
IplImage* image3=cvCreateImage(cvSize(imagewideth,imageheight),8,3);
IplImage* image4=cvCreateImage(cvSize(imagewideth,imageheight),8,1);
if (n==1)
{
image->imageData=graybuffer;
n=2;
return TRUE;
}
else
{
image1=image;
image2->imageData=graybuffer;
cvAbsDiff(image1,image2,image3);
image->imageData=graybuffer;
cvCvtColor(image3,image4,CV_RGB2GRAY);
cvAdaptiveThreshold(image3,image0,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,3,5);
}
cvShowImage("原图像",image3);
cvReleaseImage(&image0);
cvReleaseImage(&image1);
cvReleaseImage(&image2);
cvReleaseImage(&image3);
cvReleaseImage(&image4);
return TRUE ;
}
为什么我提取的一直都不是两帧图像啊。
[解决办法]
初始化错误