private static double getFps(CvCapture capture)
        {
            while (capture.QueryFrame() == null)
            {
                /* start camera */
            }

            double counter = 0;
            double seconds = 0;
            var watch = Stopwatch.StartNew();
            while (capture.QueryFrame() != null)
            {
                counter++;
                seconds = watch.ElapsedMilliseconds / (double)1000;
                if (seconds >= 3)
                {
                    watch.Stop();
                    break;
                }
            }
            var fps = counter / seconds;
            return fps;
        }
	void Start () {
		moveVec = new Vector3(0,0,0);
		
        cap = CvCapture.FromCamera (0);
		w = new CvWindow("Original");

		IplImage frame = cap.QueryFrame ();
        
        cols = frame.Width;
		rows = frame.Height;
   
        myTexture2D = new Texture2D(cols/2, rows/2);
        prvs = new IplImage(cols, rows, BitDepth.U8, 1);
		frame.CvtColor (prvs, ColorConversion.BgrToGray);
	}
예제 #3
0
        public BgSubtractorMOG()
        {
            using (CvCapture capture = new CvCapture(Const.MovieHara)) // specify your movie file
            using (BackgroundSubtractorMOG mog = new BackgroundSubtractorMOG())            
            using (CvWindow windowSrc = new CvWindow("src"))
            using (CvWindow windowDst = new CvWindow("dst")) 
            {
                IplImage imgFrame;
                using (Mat imgFg = new Mat())
                while ((imgFrame = capture.QueryFrame()) != null)
                {
                    mog.Run(new Mat(imgFrame, false), imgFg, 0.01);
                    
                    windowSrc.Image = imgFrame;
                    windowDst.Image = imgFg.ToIplImage();
                    Cv.WaitKey(50);
                }               

            }
        }
        void Awake()
        {
            _cap = new CvCapture(0);

            _capImage = _cap.QueryFrame();
            _capRgbImage = new IplImage(_capImage.Width, _capImage.Height, BitDepth.U8, 3);
            Debug.Log(string.Format("Capture info : size{0}", _capImage.Size));
               	_capGrayImage0 = new IplImage(_capImage.Size, BitDepth.U8, 1);
            _capGrayImage1 = new IplImage(_capImage.Size, BitDepth.U8, 1);
            _pyramidImage0 = new IplImage(new CvSize(_capImage.Width + 8, _capImage.Height/3), BitDepth.U8, 1);
            _pyramidImage1 = new IplImage(new CvSize(_capImage.Width + 8, _capImage.Height/3), BitDepth.U8, 1);
            _eigImage = new IplImage(_capImage.Size, BitDepth.F32, 1);
            _tmpImage = new IplImage(_capImage.Size, BitDepth.F32, 1);
            Cv.ConvertImage(_capImage, _capGrayImage0, 0);
            width = _capImage.Width;
            height = _capImage.Height;

            _opticalFlowWinSize = new CvSize(opticalFlowWinSize, opticalFlowWinSize);
            _opticalFlowCrit = new CvTermCriteria(CriteriaType.Iteration | CriteriaType.Epsilon, ofCritIterations, ofCritError);

            _prevTime = _currTime = UnityEngine.Time.time;
        }
예제 #5
0
        private void videoAçToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog opd = new OpenFileDialog();
            if (opd.ShowDialog() == DialogResult.OK && opd.FileName.Length > 3)
            {
                cap = CvCapture.FromFile(opd.FileName);
                img = cap.QueryFrame();
                uLastFrame = (UInt16)cap.FrameCount;

                Size newSize = new Size(img.Width, img.Height);
                ekran.Size = newSize;

                ekran.Image = img.ToBitmap();
                uCurrentFrameNo = 1;
                frameText.Text = uCurrentFrameNo.ToString();
                newVideoOpened = true;
            }
        }
예제 #6
0
        private void FormatVideo()
        {
            cap = CvCapture.FromFile(fileName);
            uLastFrame = (UInt16)cap.FrameCount;
            img = cap.QueryFrame();

            CvVideoWriter newVideo = new CvVideoWriter("videoFormated.avi", FourCC.Default ,cap.Fps, img.Size);

            setProgressBarMargins(0, uLastFrame);

            for (int i = 1; i < uLastFrame; i++ )
            {
                img = cap.QueryFrame();

                if (img == null) break;

                newVideo.WriteFrame(img);
                setProgressBarValue(i);

            }

            newVideo.Dispose();
            setProgressBarValue(0);
        }
        private void workerDoReadVideo(object sender, DoWorkEventArgs e)
        {
            using (var capture = new CvCapture(@"..\..\Videos\drop.avi"))
            {
                var interval = (int)(1000 / capture.Fps);

                IplImage image;
                while ((image = capture.QueryFrame()) != null &&
                        _worker != null && !_worker.CancellationPending)
                {
                    _worker.ReportProgress(0, image);
                    Thread.Sleep(interval);
                }
            }
        }