예제 #1
0
        //Generally don't have to change this
        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            img = (Bitmap)eventArgs.Frame.Clone();
            //Bitmap image = (Bitmap)img;

            Bitmap         img2;
            RotateBilinear ro = new RotateBilinear(Rotatevid, true);

            img2 = ro.Apply(img);
            if (zoomvid > 0)
            {
                img3 = zoom(img2, new Size(zoomvid, zoomvid));
            }
            else
            {
                img3 = img2;
            }
            myCanvas.g = Graphics.FromImage(img3);

            myCanvas.Run(x, y, shapeselect, ColourSelect, SizeSelect, weightselect, clearbut);

            myCanvas.g.Dispose();


            viewFinder.Image = img3;
            //viewFinder.Image = img;
        }
예제 #2
0
        //Generally don't have to change this
        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap img = (Bitmap)eventArgs.Frame.Clone();

            int r = myCanvas.change_panel_color(img, 1);
            int G = myCanvas.change_panel_color(img, 2);
            int b = myCanvas.change_panel_color(img, 3);

            if (start_pixel_color_flag == 1)
            {
                if (bluesquareflag == 1)
                {
                    begin_r = get_first_color(img, 1);
                    begin_G = get_first_color(img, 2);
                    begin_b = get_first_color(img, 3);
                }
                else
                {
                    begin_r_2 = get_first_color(img, 1);
                    begin_G_2 = get_first_color(img, 2);
                    begin_b_2 = get_first_color(img, 3);
                }
                //Console.WriteLine(begin_r_2 + " " + begin_G_2 + " " + begin_b_2);
                start_pixel_color_flag = 0;
                panel1.BackColor       = Color.FromArgb(begin_r, begin_G, begin_b);
                panel2.BackColor       = Color.FromArgb(begin_r_2, begin_G_2, begin_b_2);
            }

            //Console.WriteLine(start_pixel_color_flag);
            myCanvas.g = Graphics.FromImage(img);
            myCanvas.Run(r, G, b, img, begin_r, begin_r_2, begin_G, begin_G_2, begin_b, begin_b_2);

            viewFinder.Image = img;
            myCanvas.g.Dispose();
        }
예제 #3
0
        //Generally don't have to change this
        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap img = (Bitmap)eventArgs.Frame.Clone();

            myCanvas.g = Graphics.FromImage(img);
            myCanvas.Run();

            viewFinder.Image = img;
            myCanvas.g.Dispose();
        }
예제 #4
0
        //Generally don't have to change this
        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap img = (Bitmap)eventArgs.Frame.Clone();

            int r = myCanvas.change_panel_color(img, 1);
            int G = myCanvas.change_panel_color(img, 2);
            int b = myCanvas.change_panel_color(img, 3);

            if (start_pixel_color_flag == 1)
            {
                if (bluesquareflag == 1)
                {
                    begin_r = get_first_color(img, 1);
                    begin_G = get_first_color(img, 2);
                    begin_b = get_first_color(img, 3);
                }
                else
                {
                    begin_r_2 = get_first_color(img, 1);
                    begin_G_2 = get_first_color(img, 2);
                    begin_b_2 = get_first_color(img, 3);
                }
                start_pixel_color_flag = 0;
                panel1.BackColor       = Color.FromArgb(begin_r, begin_G, begin_b);
                panel2.BackColor       = Color.FromArgb(begin_r_2, begin_G_2, begin_b_2);
            }

            TimeSpan ts = stopwatch.Elapsed;

            secDisp.Invoke((MethodInvoker) delegate
            {
                secDisp.Text = ts.Seconds.ToString();
            });
            minDisp.Invoke((MethodInvoker) delegate
            {
                minDisp.Text = ts.Minutes.ToString();
            });

            myCanvas.g = Graphics.FromImage(img);
            myCanvas.Run(r, G, b, img, begin_r, begin_r_2, begin_G, begin_G_2, begin_b, begin_b_2);

            viewFinder.Image = img;
            myCanvas.g.Dispose();
        }
예제 #5
0
        //Generally don't have to change this
        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            try
            {
                Bitmap img = (Bitmap)eventArgs.Frame.Clone();

                Image <Bgr, Byte> image = new Image <Bgr, Byte>(img);
                Mat imgmodel            = image.Mat;
                tickCount++;

                imgmodel   = Draw(imgmodel);
                img        = imgmodel.Bitmap;
                myCanvas.g = Graphics.FromImage(img);

                while (drawinglock != 0)
                {
                }
                drawinglock = 1;

                int[] mouse = getMouseCoordinates(img);
                System.Drawing.Rectangle rec = new System.Drawing.Rectangle(mouse[0], mouse[1], 5, 5);
                myCanvas.g.DrawEllipse(curserPen, rec);


                if (button1.Text == "Load")
                {
                    myCanvas.g.DrawRectangle(objPen, Math.Min(objectside[0], objectside[0] + objwidth), Math.Min(objectside[1], objectside[1] + objheight), Math.Abs(objwidth), Math.Abs(objheight));
                }
                else if (button1.Text == "UnLoad")
                {
                    int i;
                    for (i = 0; i < trackings.Length && 0 <= trackings[i].X; i++)
                    {
                    }
                    if (i > 1)
                    {
                        Point[] drawtracking = new Point[i - 1];
                        int     j            = 0;
                        for (i = 0; i < drawtracking.Length; j++)
                        {
                            drawtracking[j] = trackings[i];
                            //if (i + 2 < drawtracking.Length && 10+3*Math.Abs(trackings[i + 2].X - trackings[i].X) + 3*Math.Abs(trackings[i + 2].Y - trackings[i].Y) - Math.Abs(trackings[i + 1].X - trackings[i].X) - Math.Abs(trackings[i + 1].Y - trackings[i].Y) < 0)
                            //{
                            //   i++;
                            //}
                            i++;
                        }

                        /*for (i = 0; i<drawtracking.Length && 0 < drawtracking[i].X; i++)
                         * {
                         * }
                         * Point[] drawtracking2 = new Point[i - 1];
                         * for (i = 0; i < drawtracking2.Length; i++)
                         * {
                         *  drawtracking2[i] = drawtracking[i];
                         * }*/
                        myCanvas.g.DrawLines(objPen, drawtracking);
                    }
                }


                foreach (int[] point in pts)
                {
                    if (point[0] == 0)//free drawing
                    {
                        int i;
                        for (i = 1; i < point.Length && point[i] >= 0; i++)
                        {
                        }

                        Point[] curve = new Point[(i - 1) / 2];
                        if (curve.Length > 1)
                        {
                            for (i = 0; i < curve.Length; i++)
                            {
                                curve[i] = new Point(point[2 * i + 1], point[2 * i + 2]);
                            }
                            myCanvas.g.DrawLines(drawingPen, curve);
                        }
                    }
                    else if (point[0] == 6)//free drawing
                    {
                        SolidBrush bloodBrush = new SolidBrush(Color.FromArgb(point[3], 131, 3, 3));
                        int        i;
                        int        tic;
                        for (i = 2; 2 * i + 1 < point.Length && point[2 * i + 1] >= 0; i++)
                        {
                            tic = tickCount - point[1];
                            myCanvas.g.FillEllipse(bloodBrush, point[2 * i] - (float)(tic * .5 + point[2] / 2.0), point[2 * i + 1] - (float)(tic * .5 + point[2] / 2.0), (float)(tic * 1 + point[2]), (float)(tic * 1 + point[2]));
                        }
                    }
                    else if (point[0] == 1)//draw line
                    {
                        myCanvas.g.DrawLine(drawingPen, point[1], point[2], point[3], point[4]);
                    }
                    else if (point[0] == 2)//draw circle
                    {
                        myCanvas.g.DrawEllipse(drawingPen, point[1] - point[3], point[2] - point[3], 2 * point[3], 2 * point[3]);
                    }
                }



                // double h = detector.ProcessFrame(img);
                //System.Console.WriteLine(h);

                //myCanvas.g.TranslateTransform(img.Width / 2, img.Height / 2);
                // Rotate
                //myCanvas.g.RotateTransform(30);
                // Restore rotation point in the matrix
                //myCanvas.g.TranslateTransform(-img.Width / 2, -img.Height / 2);
                // Draw the image on the bitmap
                //myCanvas.g.DrawImage(img, new Point(0, 0));

                if (saveFlag == 1)
                {
                    saveFlag = 0;
                    img.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
                    fs.Close();
                }
                myCanvas.Run();
                viewFinder.Image = img;
                myCanvas.g.Dispose();
                drawinglock = 0;
            }
            catch
            {
                myCanvas.g.Dispose();
                drawinglock = 0;
            }
        }