![](/img/trans.png)
[英]Why does cvGetCaptureProperty(CV_CAP_PROP_POS_FRAMES) return 0 on Windows?
[英]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.