Ejemplo n.º 1
0
        private void PhoneService_ImageReceived(object sender, ImageReceivedEventArgs e)
        {
            Image <Bgr, byte> img = new Image <Bgr, byte>(e.Width, e.Height);

            for (int y = 0; y < e.Height; y++)
            {
                for (int x = 0; x < e.Width; x++)
                {
                    for (int ch = 0; ch < 3; ch++)
                    {
                        img.Data[y, x, ch] = e.ImageData[y * e.Width * 4 + x * 4 + ch];
                    }
                }
            }


            img = calibratedCamera.GetCorrectImage(img);
            img = img.Copy(new MCvBox2D(new PointF(320f, 240f), new SizeF(600, 400), 0));

            OnImageAvailable(new ImageAvailableEventArgs {
                Image = img, Tick = e.Tick
            });
        }
Ejemplo n.º 2
0
        private void phoneService_ImageReceived(object sender, ImageReceivedEventArgs e)
        {
            Debug.WriteLine("phoneService_ImageReceived");

            if (isAnalyzing == false)
            {
                isAnalyzing = true;
                Debug.WriteLine("开始分析");
                Image <Bgr, byte> img = new Image <Bgr, byte>(e.Width, e.Height);
                for (int y = 0; y < e.Height; y++)
                {
                    for (int x = 0; x < e.Width; x++)
                    {
                        for (int ch = 0; ch < 3; ch++)
                        {
                            img.Data[y, x, ch] = e.ImageData[y * e.Width * 4 + x * 4 + ch];
                        }
                    }
                }

                Task analyzeTask = new Task(o => AnalyzeImage((Image <Bgr, byte>)o), img);
                analyzeTask.Start();
            }
        }