【已解决】我遇到的 bad flag(parameter or structure field)(Unrecognized or unsupported array type)

我用Open CV遇到的问题如下:

bad flag(parameter or structure field)(Unrecognized or unsupported array type) 


出问题的语句:

cvShowImage("test", frames[i-1]);

涉及到frames的语句为:

IplImage *frames[MAX_FRAME];

frames[i] = cvCloneImage(frame);


原因:

1. 我使用的frames[]数组并未初始化分配空间,

2. cvCloneImage()方法克隆过来的图像,在源图像在内存中消失后,克隆过来的图像也消失了。参考hubetter的这篇文章。

所以根本不存在frames[i-1]了,自然就显示不出来。


我的解决办法:

我没有使用数组了,因为使用数组存储图像需要花费很多空间,可能导致内存溢出。我定义了一个变量frame_pre,用frame_pre来访问前一帧的图像。

使用cvCopy()方法存储前一帧图像:cvCopy(frame, frame_pre, NULL);

最后实验通过。

你可能感兴趣的:(【已解决】我遇到的 bad flag(parameter or structure field)(Unrecognized or unsupported array type))