Beispiel #1
0
        public void PreProcess()
        {
            Image <Bgr, Byte> originalImage = new Image <Bgr, Byte>(@"D:\Master\hand.jpg");

            originalImage = PreProcessing.Cropping(originalImage, new Rectangle(0 + 10, 0 + 10, originalImage.Width - 30, originalImage.Height - 30));
            originalImage = originalImage.Resize(0.45, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);
            //originalImage = originalImage.Rotate(90.0, new Bgr(255, 255, 255));
            pictureBoxOriginal.Image = originalImage.ToBitmap();

            grayImage            = PreProcessing.Convert2Grayscale(originalImage);
            grayImage            = PreProcessing.NoiseFilter(grayImage, 9);
            pictureBoxGray.Image = grayImage.ToBitmap();



            grayImage = PreProcessing.Binarization(grayImage, new Gray(255.0));
            pictureBoxBinary.Image = grayImage.ToBitmap();

            grayImage = PreProcessing.EdgeDetection(grayImage);



            pictureBoxContour.Image = grayImage.ToBitmap();
            int count = 0;

            for (int i = 0; i < grayImage.Height; i++)
            {
                for (int j = 0; j < grayImage.Width; j++)
                {
                    if (grayImage[i, j].Equals(new Gray(255)))
                    {
                        count++;
                    }
                }
            }
            MessageBox.Show(count.ToString());
            Thread t = new Thread(new ThreadStart(Run));

            t.Start();
        }