public Set ( CaptureProperty propertyId, double value ) : int | ||
propertyId | CaptureProperty | property identifier. |
value | double | value of the property. |
Результат | int |
public void Run() { var capture = new VideoCapture(); capture.Set(CaptureProperty.FrameWidth, 640); capture.Set(CaptureProperty.FrameHeight, 480); capture.Open(-1); if (!capture.IsOpened()) throw new Exception("capture initialization failed"); var fs = FrameSource.CreateCameraSource(-1); var sr = SuperResolution.CreateBTVL1(); sr.SetInput(fs); using (var normalWindow = new Window("normal")) using (var srWindow = new Window("super resolution")) { var normalFrame = new Mat(); var srFrame = new Mat(); while (true) { capture.Read(normalFrame); sr.NextFrame(srFrame); if (normalFrame.Empty() || srFrame.Empty()) break; normalWindow.ShowImage(normalFrame); srWindow.ShowImage(srFrame); Cv2.WaitKey(100); } } }
public OpencvSource(string cam_or_url) { MAssert.Check(cam_or_url != string.Empty); // check if cam_or_url is number bool stream = false; for (int i = 0; i < cam_or_url.Length; ++i) { stream = stream || (cam_or_url[i] < '0') || (cam_or_url[i] > '9'); } if (stream) { // open stream Console.WriteLine("opening stream '{0}'", cam_or_url); capturer = new OpenCvSharp.VideoCapture(cam_or_url); } else { // convert to integer int cam_id = Convert.ToInt32(cam_or_url, 10); MAssert.Check(cam_id >= 0, "wrong webcam id"); // open vebcam Console.WriteLine("opening webcam {0}", cam_id); capturer = new OpenCvSharp.VideoCapture(cam_id); MAssert.Check(capturer.IsOpened(), "webcam not opened"); // set resolution capturer.Set(OpenCvSharp.CaptureProperty.FrameWidth, 1280); capturer.Set(OpenCvSharp.CaptureProperty.FrameHeight, 720); MAssert.Check(capturer.IsOpened(), "webcam not opened"); } // sometimes first few frames can be empty even if camera is good // so skip few frames OpenCvSharp.Mat frame; for (int i = 0; i < 10; ++i) { frame = capturer.RetrieveMat(); } // check first two frames OpenCvSharp.Mat image1 = new OpenCvSharp.Mat(), image2 = new OpenCvSharp.Mat(); capturer.Read(image1); capturer.Read(image2); Console.WriteLine("image1 size: {0}", image1.Size()); Console.WriteLine("image1 size: {0}", image2.Size()); MAssert.Check( !image1.Empty() && !image2.Empty() && image1.Size() == image2.Size() && image1.Type() == OpenCvSharp.MatType.CV_8UC3 && image2.Type() == OpenCvSharp.MatType.CV_8UC3, "error opening webcam or stream"); }
private void timer1_Tick(object sender, EventArgs e) { if (cap == null || pause) { return; } if (forwTo) { var ofps = cap.Get(5);//5 fps forwTo = false; var frm = cap.Get(7);//7 frame count var secs = (frm / ofps) * 1000; cap.Set(0, forwPosPercetange * secs);//posmsec 0 } if (oneFrameStep && oneFrameStepDir == -1) { var pf = cap.Get(1);//1 posframes cap.Set(1, Math.Max(0, pf - 2)); } if (oneFrameStep) { pause = true; oneFrameStep = false; } Mat mat = new Mat(); cap.Read(mat); pictureBox1.Image = BitmapConverter.ToBitmap(mat); }
//打开摄像头 private void btn_play_Click(object sender, EventArgs e) { if (!bPlayflag) { m_vCapture = new VideoCapture(CaptureDevice.Any); if (!m_vCapture.IsOpened()) { MessageBox.Show("摄像头打不开", "摄像头故障", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } m_vCapture.Set(CaptureProperty.FrameWidth, 640); //宽度 m_vCapture.Set(CaptureProperty.FrameHeight, 480); //高度 bPlayflag = true; ThreadCam = new Thread(Play_Camera); ThreadCam.Start(); pic_cam.Image = null; btn_play.Text = "关闭摄像头"; } else { bPlayflag = false; ThreadCam.Abort(); m_vCapture.Release(); btn_play.Text = "打开摄像头"; } }