• 11524阅读
  • 2回复

OpenCV播放视频 [复制链接]

上一主题 下一主题
离线jwchen08
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-17
  Qt的Phonon能不能播放视频还在尝试中,总之貌似不太轻松,而在OpenCV中则,很容易,说到底,视频播放就是将一串图片按照一定帧速率显示出来。


int main()[pre]{[/pre][pre]cvNamedWindow("Traffic");[/pre][pre][/pre][pre]CvCapture* capture=cvCreateFileCapture("D:/003.avi");[/pre][pre]IplImage* frame=NULL;[/pre][pre]int fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);[/pre][pre]int a=(int)(1000/fps);[/pre][pre]while(frame=cvQueryFrame(capture))[/pre][pre]{[/pre][pre]cvShowImage("Traffic",frame);[/pre][pre]int c=cvWaitKey(a);[/pre][pre]if(c==27)[/pre][pre]break;[/pre][pre]}[/pre][pre]cvReleaseCapture(&capture);[/pre][pre]cvDestroyWindow("Traffic");[/pre][pre][/pre][pre]return 0;[/pre][pre][/pre][pre]}[/pre][pre]
[/pre][pre]需要注意的是最后不需要cvReleaseImage(&frame),因为随着capture的释放,frame也被释放了,如果再次释放会导致出错。[/pre]
离线jwchen08
只看该作者 1楼 发表于: 2011-03-17
回 楼主(jwchen08) 的帖子
复制的代码在这儿显示有误,但是帖子一编辑就崩溃了,不知道为什么,所以重新贴在这儿吧

int main()
{
    cvNamedWindow("Traffic");

    CvCapture* capture=cvCreateFileCapture("D:/003.avi");
    IplImage* frame=NULL;
    int fps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
    int a=(int)(1000/fps);
    while(frame=cvQueryFrame(capture))
    {
        cvShowImage("Traffic",frame);
        int c=cvWaitKey(a);
        if(c==27)
            break;
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("Traffic");

    return 0;

}
离线kimtaikee

只看该作者 2楼 发表于: 2011-03-17
怎么感觉直接把书上的代码copy过来了

快速回复
限100 字节
 
上一个 下一个