任意のフレームを画像にする
using (VideoCapture videoCapture = new VideoCapture(filepath)) { Mat img = new Mat(); if (!videoCapture.IsOpened()) { Console.WriteLine("file not opend!"); return; } Bitmap bitmap; int frameCount = videoCapture.FrameCount-1; double fps = videoCapture.Fps; int posFrame = (int)(frameCount * fps); videoCapture.PosFrames = frameCount; videoCapture.Read(img); bitmap = BitmapConverter.ToBitmap(img); bitmap.Save(@"hogehoge.jpg"); }
frameCountを-1してるのは、最終フレームを指定するとvideoCapture.Read(img)ができず、ArgumentExceptionで落ちる FrameCountが0から始まるからだろうと勝手に想像してるが、今のところ思い通りの動作をしている