0
以下のコードを使用して、ビデオファイルからすべてのフレームを取得しています。ただし、サンプルビデオのコードを実行すると、double FramesCount
は1402402
になり、フレーム#467
にエラーが表示されます。EmguCVでビデオファイルのフレーム数を取得する方法は?
P.Sは、私は本当のフレームは、ビデオファイルはわずか15秒(15秒* 30fpsの=〜450のフレーム)
_capture = new Capture(OpenFile.FileName);
FramesCount = (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_COUNT);
for(int i = 0; i < FramesCount - 1; i++)
{
FramesArray.Add(_capture.QueryGrayFrame().Resize(ImageWidth, ImageHeight, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR));
}
がどのように正確なフレームを数える得ることができているので、周り〜467で数えると思いますか?
私の場合(OP)、 'FramesCount'は非常に高かったですが、とにかくループを実行し、できるだけたくさんの' QueryGrayFrame'を 'FramesArray'に取り込み、一度エラーをポップするとFramesCountが実際のフレームよりも高いので、まだ動き出しています)、私はそれを無視して、ビデオのすべてのフレームを持つ 'FramesArray'を使用します。 –