Пример #1
0
        private async void handlePlayButtonOn()
        {
            recordMode = RecordMode.Playingback;
            saveRecordedSession.Focus();
            finishRecording.Wait();

            playButton.ImageIndex = 3;

            playBackRgbLock = new object();
            rgbBoard.playbackLock = playBackRgbLock;

            // Reread rgb file

            videoReader = new VideoReader(tempRgbFileName, (int)lastWrittenRgbTime.TotalMilliseconds);
            rgbBoard.mat = videoReader.getFrame(0);

            if (rgbBoard.mat == null)
            {
                // video is null
                return;
            }
            rgbBoard.Image = rgbBoard.mat.Bitmap;

            rgbPlaybackFrameNo = videoReader.frameCount;
            int frameWidth = videoReader.frameWidth;
            int frameHeight = videoReader.frameHeight;

            depthReader = new BaseDepthReader(tempDepthFileName);
            depthFrame = depthReader.getFrameCount();
            depthWidth = depthReader.getWidth();
            depthHeight = depthReader.getHeight();
            depthBitmap = new Bitmap(depthWidth, depthHeight, PixelFormat.Format32bppRgb);
            depthValuesToByte = new byte[depthWidth * depthHeight * 4];

            endTimeLabel.Text = (int)lastWrittenRgbTime.TotalMinutes + ":" + lastWrittenRgbTime.Seconds.ToString("00") + "." + lastWrittenRgbTime.Milliseconds.ToString("000");

            // Set values for playBar
            playBar.Enabled = true;
            playBar.Minimum = 1;
            playBar.Maximum = rgbPlaybackFrameNo;
            playBar.Value = 1;

            StringBuilder sb = new StringBuilder();

            sb.Append("Temporary rgb file has written " + rgbStreamedFrame + " frames \n");
            sb.Append("Temporary rgb file has " + rgbPlaybackFrameNo + " frames of size = ( " + frameWidth + " , " + frameHeight + " ) \n");
            sb.Append("Temporary depth file has " + depthFrame + " frames of size = ( " + depthWidth + " , " + depthHeight + " ) \n");
            sb.Append("RecordingTime " + lastWrittenRgbTime + "\n");

            if (rigDetected.Value)
            {
                sb.Append("Rig(s) is detected.\n");
            } else
            {
                sb.Append("No rig is detected.\n");
            }

            detectedObjects = await Utils.DetectObjects("Progress on capturing", videoReader, depthReader, objectRecognizers, objectRecognizerIncluded, this.coordinateMapper.MapColorFrameToCameraSpace);

            Console.WriteLine("In playback " + detectedObjects.Count);

            sb.Append(detectedObjects.Count + " objects is detected.\n");

            helperTextBox.Text = sb.ToString();

            main.Invalidate();
        }