首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何提取连续的两帧图像做帧间差

2012-12-21 
怎么提取连续的两帧图像做帧间差// 图像处理 /*参数说明:rgbbuffer:rgb 数据graybuffer:灰度数据会读数据

怎么提取连续的两帧图像做帧间差
// 图像处理 
/*参数说明:  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 ;
}

为什么我提取的一直都不是两帧图像啊。
[解决办法]
初始化错误

热点排行