附图:
赋值的时候是这样的:
验证了一下:
结果是:
求教这是怎么回事?这种情况下如何存储多幅图像????
opencv创建一个数组IplImage* img[],读视频时分别指向一帧图像,但发现所有的Img[i]指向的图像像素值相同
答案:2 悬赏:10
解决时间 2021-03-05 14:25
- 提问者网友:野性
- 2021-03-05 04:12
最佳答案
- 二级知识专家网友:转身→时光静好
- 2021-03-05 05:26
img[i] 存储的是头指针。
而cvQueryFrame()返回的是每一帧的头指针,我们无法保证cvQueryFrame()不会反复使用同一块内存。(通过你的代码发现他就是反复使用的同一块内存)。当你第二次调用cvQueryFrame()的时候,其实第一帧的数据是被擦掉的。所以每个img[i]存储的都是最后一帧的数据。
比较好的做法是,先给img[i]分配数据,然后把每一帧的数据拷贝进来。
而cvQueryFrame()返回的是每一帧的头指针,我们无法保证cvQueryFrame()不会反复使用同一块内存。(通过你的代码发现他就是反复使用的同一块内存)。当你第二次调用cvQueryFrame()的时候,其实第一帧的数据是被擦掉的。所以每个img[i]存储的都是最后一帧的数据。
比较好的做法是,先给img[i]分配数据,然后把每一帧的数据拷贝进来。
全部回答
- 1楼网友:努力只為明天
- 2021-03-05 06:20
任务占坑
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯