0

ムービーでオプティカル フローを抽出するコードを実行していますが、ムービーのすべてのフレームで実行したいと考えています。しかし、私が使用するとき

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 を使用しています。古いことは知っていますが、プロジェクトの他の部分との下位互換性のために使用する必要があります。前もって感謝します !!

4

2 に答える 2

-1

double 値を 0-1 から int に変換しています - そのため、0 を取得しています...フレームの総数が必要な場合は、CV_CAP_PROP_FRAME_COUNT を使用します...

于 2013-06-12T14:19:15.697 に答える