При определенных условиях мне нужно иметь возможность перематывать видео на 10 кадров.
До сих пор у меня есть VideoCapture cap
, из которого я извлекаю кадры для редактирования и отображения с помощью cap >> frame
, где frame
имеет тип Mat
(это то, на чем основаны все мои оставшиеся правки кадров.
Я обнаружил, что вы можете перематывать кадры с помощью
int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
но проблема в том, что это несовместимо с моим VideoCapture cap
, компилятор говорит:
min.cpp:158:72: error: cannot convert ‘cv::VideoCapture’ to ‘CvCapture*’ for argument ‘1’ to ‘int cvSetCaptureProperty(CvCapture*, int, double)’
cvSetCaptureProperty(cap,CV_CAP_PROP_POS_FRAMES, i-TRCK_MRG);
^
min.cpp:159:37: error: cannot convert ‘cv::VideoCapture’ to ‘CvCapture*’ for argument ‘1’ to ‘IplImage* cvQueryFrame(CvCapture*)’
frame = cvQueryFrame(cap);
и если я использую VideoCapture *cap
, чтобы захватывать кадры как IplImage* frame
, остальная часть моей программы также должна быть изменена, если я не преобразую кадры обратно в тип Mat
.
Следовательно, есть ли возможность перемотать несколько кадров в VideoCapture
?