C++ 有没有办法设置cvQueryFrame或cvGrabFrame的开始帧?

C++ 有没有办法设置cvQueryFrame或cvGrabFrame的开始帧?,c++,opencv,C++,Opencv,使用OpenCV(HighGUI.h),我主要有以下代码: int frame_count = 0; while( (frame=cvQueryFrame(capture)) != NULL && (frame_count <= max_frame)) { //If the current frame is within the bouds min_frame and max_frame, write it to the new video, else

使用OpenCV(HighGUI.h),我主要有以下代码:

int frame_count = 0;  
while( (frame=cvQueryFrame(capture)) != NULL && (frame_count <= max_frame)) {
        //If the current frame is within the bouds min_frame and max_frame, write it to the new video, else do nothing
        if (frame_count >= min_frame){
            cvWriteFrame( writer, frame );
        }
        frame_count++;
    }
int frame\u count=0;
而((frame=cvQueryFrame(capture))!=NULL&&(frame\u count=min\u frame){
cvWriteFrame(writer,frame);
}
帧计数++;
}
它查询捕获帧,并且仅当帧在最小帧和最大帧(两个整数)的范围内时才写入。代码工作得很好,但对于处理非常大的视频来说效率不够,因为它必须查询捕获帧,直到最小帧,但它不会写入它们。我想知道是否有办法可以让cvQueryFrame从min_frame开始,而不必一直到它。自从我移动后,当它到max_frame时,它已经停止了

frame_count <= max_frame

frame\u count您可以通过

cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, min_frame);

当然,仅适用于视频,不适用于相机。读取的下一帧将是
min\u frame
,并且从那里开始读取将正常进行(将读取
min\u frame
之后的帧)如果您不重新设置帧位置,那么这是一个完美的匹配,因为您只需要在开始时调用它。

您正在使用相机或视频吗?