private void LoadVideoFrames() { if (openCvCapture == null) { openCvCapture = new OpenCvSharp.VideoCapture(0); } OpenCvSharp.Mat frame = new OpenCvSharp.Mat(); bool readingVideo = true; int cnt = 0; while (readingVideo) { if (openCvCapture.Read(frame)) { cnt++; frame.SaveImage(@"d:\junk\testCamImages\image{cnt}.png"); byte[] imagearray = frame.ImEncode(".png"); BitmapImage bmi = new BitmapImage(); using (MemoryStream ms = new MemoryStream(imagearray)) { ms.Position = 0; bmi.BeginInit(); bmi.CacheOption = BitmapCacheOption.OnLoad; bmi.StreamSource = ms; bmi.EndInit(); } //this.ImageSource.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, // new Action(() => // { // ImageSource = bmi; // })); //capture. OpenCvSharp.Cv2.ImShow("video", frame); int key = OpenCvSharp.Cv2.WaitKey(27); if (key == 27) { readingVideo = false; } } } }