繁体   English   中英

为什么cvGetCaptureProperty(video,CV_CAP_PROP_POS_FRAMES)在Windows 7 64位计算机上返回0?

[英]why does cvGetCaptureProperty(video,CV_CAP_PROP_POS_FRAMES) returns 0 on Windows 7 64bit machine?

我正在运行代码以提取电影中的光流,并且希望在电影的所有帧上运行它。 但是,当我使用

number_of_frames = (int) cvGetCaptureProperty( input_video, CV_CAP_PROP_POS_FRAMES );

number_of_frames变为0; 我的代码段如下:

CvCapture *input_video = cvCaptureFromFile("C:\\Movies\\WESTWARD_HO.avi");
long number_of_frames;
cvSetCaptureProperty( input_video, CV_CAP_PROP_POS_AVI_RATIO, 1. );
number_of_frames = (int) cvGetCaptureProperty( input_video, CV_CAP_PROP_POS_FRAMES );

我将Visual Studio 2008与OpenCv 2.1一起使用。 我知道它很旧,但是我必须使用它与项目的其他部分向后兼容。 提前致谢 !!

OpenCV中存在大量与此参数有关的错误。 目前,OpenCV对此还没有很好的支持,尽管在最新版本中,OpenCV有了很大的改进。 由于视频格式,编解码器,后端等种类繁多,因此很难使每个人都能正常工作。

如果您确实需要它,请尝试将视频转换为其他格式。 您可能会使用其他编解码器获得更好的结果。 此外, 有时安装更多编解码器也会有所帮助

这是有关CV_CAP_POS_FRAMES的相关问题: OpenCV中的反向视频播放

并且,最重要的是,将您的OpenCV 更新到2.4.2。 使用2.1让我想起了乔治华盛顿签署独立宣言的时代...

您正在将双精度值从0-1转换为int-这就是为什么您要获得0 ...如果要总数为CV_CAP_PROP_FRAME_COUNT ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM