openCV中使用了IplImage数组,但放进去的一组图像帧回头处理时发现全都变成最后一帧了? 25
如题,IplImage*frmBacProcess[20]在视频流中每隔一段时间采样存放进数组,但是回头要处理的时候,发现里面的图像全是每组的最后一幅。是不是指针数组操作...
如题,IplImage *frmBacProcess[20] 在视频流中每隔一段时间采样存放进数组,但是回头要处理的时候,发现里面的图像全是每组的最后一幅。是不是指针数组操作不当引起的?
......
IplImage *frame=NULL;
IplImage *frmImg=NULL;
IplImage *frmBacProcess[20];
IplImage *frmBack = NULL;
CvMat *frmMat=NULL;
int nFrmNum=0;
int i=0;
//循环读取帧
while(frame=cvQueryFrame(capture))
{
//获取当前帧的下一帧,加载到内存
nFrmNum++;
//把当前帧加入背景提取数组
if(nFrmNum % 10 == 1)
{
frmBacProcess[i]=frame;
cvShowImage("test",frmBacProcess[i]);
i++;
printf("f = %d\n",i );
if (i>19)
{
//frmBack = getBackground(frmBacProcess);
cvShowImage("background",frmBacProcess[2]); //这里无论引用数组中的哪个元素都显示最后一幅
i = 0;
}
}
...... 展开
......
IplImage *frame=NULL;
IplImage *frmImg=NULL;
IplImage *frmBacProcess[20];
IplImage *frmBack = NULL;
CvMat *frmMat=NULL;
int nFrmNum=0;
int i=0;
//循环读取帧
while(frame=cvQueryFrame(capture))
{
//获取当前帧的下一帧,加载到内存
nFrmNum++;
//把当前帧加入背景提取数组
if(nFrmNum % 10 == 1)
{
frmBacProcess[i]=frame;
cvShowImage("test",frmBacProcess[i]);
i++;
printf("f = %d\n",i );
if (i>19)
{
//frmBack = getBackground(frmBacProcess);
cvShowImage("background",frmBacProcess[2]); //这里无论引用数组中的哪个元素都显示最后一幅
i = 0;
}
}
...... 展开
1个回答
展开全部
上次有人问了同样的问题,可以参考:
http://zhidao.baidu.com/question/519623443360630485.html
http://zhidao.baidu.com/question/519623443360630485.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询