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(); }