public static Vector3[,] Medium(string path, int steps = 100) { VideoFileReader reader = new VideoFileReader(); reader.Open(path); Vector3[,] data = new Vector3[reader.Width, reader.Height]; var temp = new Image <Rgb, float>(reader.Width, reader.Height); for (int i = 0; i < steps; i++) { using (Bitmap img = reader.ReadVideoFrame(i * (int)reader.FrameCount / steps)) { var arr = new Image <Rgb, float>(img); temp.Accumulate(arr); //temp.WriteRGB(img); //data.ForEach(temp, (m, v) => m.Add(v)); } } for (int x = 0; x < reader.Width; x++) { for (int y = 0; y < reader.Height; y++) { Rgb rgb = temp[y, x]; data[x, y] = new Vector3((float)rgb.Red / steps / 255, (float)rgb.Green / steps / 255, (float)rgb.Blue / steps / 255); } } reader.Close(); return(data); }