2014-11-04 79 views
1

我试图运行一些代码来将视频轨添加到某些视频上,它来自于学习OpenCV第二版的书,但我无法编译我的代码并给出错误“namespace cv has没有成员CAP_PROP_POS_FRAMES”cv没有成员CAP_PROP_POS_FRAMES

下面的代码

#include <opencv2\highgui\highgui.hpp> 
#include <opencv2\imgproc\imgproc.hpp> 
#include <iostream> 
#include <fstream> 

using namespace std; 

int g_slider_position = 0; 
int g_run = 1, g_dontset = 0; //start out in a single step mode 
cv::VideoCapture g_cap; 

void onTrackbarSlide(int pos, void *) { 
    g_cap.set(cv::CAP_PROP_POS_FRAMES, pos); 
    if(!g_dontset) 
     g_run = 1; 
    g_dontset = 0; 
} 
+1

cv :: CAP_PROP_POS_FRAMES仅对最新的opencv版本有效。你到底在用什么? (您可能需要使用旧版本回退到CV_CAP_PROP_POS_FRAME)。 – berak 2014-11-04 20:38:44

+0

我在Visual Studio 2010中使用cv 2.4.9,并且我尝试了CV_CAP_PROP_POS_FRAME,但结果相同 – Dave 2014-11-04 21:45:07

+0

抱歉,错字,请参阅下面的答案。 – berak 2014-11-05 05:51:38

回答

2

这是CV_CAP_PROP_POS_FRAME 小号(注意S),应该由highgui.hpp将带来的第一位。这是全局命名空间中的匿名枚举。

+0

感谢chappjc的回答,将S添加到最后并在开始时取出cv ::似乎解决了我的问题 – Dave 2014-11-07 12:01:24