Exemple #1
0
        public static void Run()
        {
            Mat image = new Mat();

            frameSource = Cv2.CreateFrameSource_Camera(0);
            while (true)
            {
                //Grab the current frame
                frameSource.NextFrame(image);

                Mat gray = new Mat();
                Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);

                Mat blur = new Mat();
                Cv2.GaussianBlur(gray, blur, new Size(19, 19), 0);

                Mat    threshImg = new Mat();
                double thresh    = Cv2.Threshold(gray, threshImg, 150, 255, ThresholdTypes.Otsu);

                Mat[] contours;

                Mat hierarchy = new Mat();
                Cv2.FindContours(threshImg, out contours, hierarchy, RetrievalModes.Tree, ContourApproximationModes.ApproxSimple);
                double maxArea     = 100;
                Mat    handContour = new Mat();
                handContour = contours.OrderByDescending(x => (x.ContourArea())).ToList()[0];
                //foreach (var item in contours)
                //{
                //    if(item.ContourArea() > maxArea)
                //    {
                //        handContour = item;
                //        break;
                //    }
                //}

                Mat hull = new Mat();
                Cv2.ConvexHull(handContour, hull);

                Mat defects = new Mat();
                Cv2.ConvexityDefects(handContour, hull, defects);

                Cv2.ImShow("frame", hull);
                //Cv2.WaitKey(0);
                if (Cv2.WaitKey(1) == (int)ConsoleKey.Enter)
                {
                    break;
                }
            }
        }
        public MainWindowVM()
        {
            AddContour     = new RelayCommand <object>(AddSlotHandler, o => ParkingSlots != null);
            DeleteContour  = new RelayCommand <ParkingSlotVM>(DeleteSlotHandler);
            SaveToFile     = new RelayCommand <object>(SaveToFileHandler);
            MakeScreenShot = new RelayCommand <object>(MakeScreenShotHandler, _ => !string.IsNullOrEmpty(TrainDataPath));

            LoadContours();

            Camera = Cv2.CreateFrameSource_Camera(0);

            _dispatcherTimer.Tick    += dispatcherTimer_Tick;
            _dispatcherTimer.Interval = new TimeSpan(1000);
            _dispatcherTimer.Start();
        }
Exemple #3
0
 public void Init()
 {
     frameSource = Cv2.CreateFrameSource_Camera(0);
 }
 public void Initialize()
 {
     _source = Cv2.CreateFrameSource_Camera(0);      //Initialize image frame source
 }
Exemple #5
0
        private void FirstButton_OnClick(object sender, RoutedEventArgs e)
        {
            //Mat src = new Mat("lenna.png", ImreadModes.Grayscale);
            //Mat dst = new Mat();
            //Cv2.Canny(src, dst, 10, 300, 3);


            //SrcImage.Source = bitmapToBitmapImage(OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src));
            //if (src.ImWrite("srcLenna.jpg"))
            //{

            //    Uri srcUri = new Uri(Path.Combine(Environment.CurrentDirectory, "srcLenna.jpg"));
            //    SrcImage.Source = new BitmapImage(srcUri);
            //}

            //if (dst.ImWrite("dstLenna.jpg"))
            //{
            //    Uri dstUri = new Uri(Path.Combine(Environment.CurrentDirectory, "dstLenna.jpg"));
            //    DstImage.Source = new BitmapImage(dstUri);
            //}

            //VideoCapture capture = new VideoCapture(0);
            FrameSource frame = Cv2.CreateFrameSource_Camera(0);

            //using var window = new OpenCvSharp.Window("Camera");

            Task.Run(() =>
            {
                isOpen          = true;
                using var image = new Mat();
                using var dst   = new Mat();

                while (isOpen)
                {
                    //capture.Read(image);
                    //if (image.Empty()) break;

                    //window.ShowImage(image);
                    //image.ImWrite("camera.jpg");
                    //Uri dstUri = new Uri(Path.Combine(Environment.CurrentDirectory, "camera.jpg"));
                    //DstImage.Source = new BitmapImage(dstUri);

                    //DstImage.Source = bitmapToBitmapImage//(OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image));

                    //Cv2.WaitKey();

                    frame.NextFrame(image);
                    if (image.Empty())
                    {
                        break;
                    }

                    Dispatcher.Invoke(new Action(() =>
                    {
                        var src_gray = new Mat();
                        Cv2.CvtColor(image, src_gray, ColorConversionCodes.RGB2GRAY);
                        Cv2.Blur(src_gray, src_gray, new OpenCvSharp.Size(2, 2));
                        Cv2.Canny(src_gray, dst, Threshold1.Value, Threshold2.Value);
                        SrcImage.Source = bitmapToBitmapImage(BitmapConverter.ToBitmap(src_gray));
                        DstImage.Source = bitmapToBitmapImage(BitmapConverter.ToBitmap(dst));
                    }));
                }
            });
        }