cvQueryFrame
来源:互联网 发布:java应用架构设计 编辑:程序博客网 时间:2024/04/30 05:39
从摄像头或者文件中抓取并返回一帧
<pre>
IplImage* cvQueryFrame( CvCapture* capture );
</pre>
;capture : 视频获取结构。
函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。
抓取后,capture被指向下一帧,可用cvSetCaptureProperty调整capture到合适的帧。
注意: cvQueryFrame返回的指针总是指向同一块内存。建议cvQueryFrame后拷贝一份。而且返回的帧需要FLIP后才符合OPENCV的坐标系。
若返回值为NULL,说明到了视频的最后一帧。
以下代码:
IplImage* frame0 = 0;
IplImage* frame1=0;
IplImage* frame2=0;
frame0 = cvQueryFrame( capture );
cvSaveImage("frame0.jpg",frame0);
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
frame1=cvCloneImage(frame0);
cvSaveImage("frame2.jpg",frame2);
cvSaveImage("frame1.jpg",frame1);
奇怪的是,frame1.jpg与frame0.jpg不相同,frame1.jpg反而与frame2.jpg一样,为什么会出现这种情况?
IplImage* frame0 = 0;
IplImage* frame1=0;
IplImage* frame2=0;
frame0 = cvQueryFrame( capture );
cvSaveImage("frame0.jpg",frame0);
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
frame1=cvCloneImage(frame0);
cvSaveImage("frame2.jpg",frame2);
cvSaveImage("frame1.jpg",frame1);
奇怪的是,frame1.jpg与frame0.jpg不相同,frame1.jpg反而与frame2.jpg一样,为什么会出现这种情况?
因为:
cvQueryFrame 返回的内存区域是由cvQueryFrame管理的。
每调用一次指针所指区域就会更新。
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
frame1=cvCloneImage(frame0); <-这句在调用11此之后
当然和frame2一样了。
每调用一次指针所指区域就会更新。
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
frame1=cvCloneImage(frame0); <-这句在调用11此之后
当然和frame2一样了。
而如下代码则可以正常实现目的。
IplImage* frame0 = 0;
IplImage* frame1=0;
IplImage* frame2=0;
frame0 = cvQueryFrame( capture );
cvSaveImage("frame0.jpg",frame0);
frame1=cvCloneImage(frame0); //提到前面就行了.
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
cvSaveImage("frame2.jpg",frame2);
cvSaveImage("frame1.jpg",frame1);
IplImage* frame1=0;
IplImage* frame2=0;
frame0 = cvQueryFrame( capture );
cvSaveImage("frame0.jpg",frame0);
frame1=cvCloneImage(frame0); //提到前面就行了.
for (i=0;i<10;i++)
{
frame2=cvQueryFrame(capture);
}
cvSaveImage("frame2.jpg",frame2);
cvSaveImage("frame1.jpg",frame1);
- cvQueryFrame
- cvQueryFrame
- cvQueryFrame
- cvQueryFrame
- cvQueryFrame
- cvGrabFrame与cvQueryFrame
- OpenCV Learning: cvQueryFrame遇到的问题
- cvCaptureFromCam is working but cvQueryFrame returns NULL
- cvQueryFrame获取的图像和cvReleas…
- cvQueryFrame获取的图像和cvReleas…
- == cvQueryFrame ==
- == cvQueryFrame ==
- cvGrabFrame,cvRetrieveFrame,cvQueryFrame 三函数比较
- 关于opencv从视频获取单帧图片函数cvQueryFrame
- 对OpenCV 中cvQueryFrame函数的一点理解
- 读视频文件和运动物体检测cvCaptureFromCAM cvQueryFrame
- 【OPENCV函数】(cvGrabFrame,cvRetrieveFrame)与 cvQueryFrame的比较
- 对OpenCV 中cvQueryFrame函数的一点理解
- XML解析技术之VTD-XML 简介及代码实例
- 一个函数只能采用一种形式的异常处理规则
- IT青年创业降级论
- Holedox Eating &&http://acm.hdu.edu.cn/showproblem.php?pid=4302
- 服务器数据库系列 - Web server调研分析
- cvQueryFrame
- Android实现书籍翻页效果--扩展版
- “游戏人间”
- android SqLite综述
- 深刻:现在计算机专业学生怎么这样
- 仿百度文库在线阅读实现
- CPSW program sequence
- hdu3117
- 个性与否