private void LoadImage_Click(object sender, EventArgs e) { OpenFileDialog OFD = new OpenFileDialog(); OFD.Title = "Please Choose Image To Applay Filters"; OFD.Filter = "Images|*.png;*.jpg;*.jpeg"; button1.PerformClick(); if (OFD.ShowDialog() == DialogResult.OK) { ImagePath_txt.Text = OFD.FileName; ImageControl.SetImageLocation(OFD.FileName, true); // Adding The Picture Box To The panel PictureBox WantToAdded = CreateNewPictureBox(); WantToAdded.Image = ImageControl.GetMainImage(); /////////// Prevoius_Images.Items.Add(OFD.FileName); } else { MessageBox.Show("Select A Vaild Image", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public override void ApplayObjectDetection(_Image ApplayImage) { _Image XsobelImage = new _Image(); XsobelImage.SetImageLocation(ApplayImage.ImageLocation, true); // Applaying x-Sobel Opreator X_Sobel xsolbel = new X_Sobel(); xsolbel.ApplayFilter(XsobelImage); _Image YsobelImage = new _Image(); YsobelImage.SetImageLocation(ApplayImage.ImageLocation, true); // Applaying Y-sobel Opreator Y_Sobel ysobel = new Y_Sobel(); ysobel.ApplayFilter(YsobelImage); double[,] XsolbelArray = SquerBitmap(XsobelImage.GetFilterdImageBitMap()); double[,] YsolbelArray = SquerBitmap(YsobelImage.GetFilterdImageBitMap()); YsobelImage.ReplaceMainImageWithiltedImage(); XsobelImage.ReplaceMainImageWithiltedImage(); // Get The Multipication OF 2 Image string Message = ""; Bitmap MultBitMap = HelperFunctions.MultibleTwoImage(XsobelImage.GetFilterdImageBitMap(), YsobelImage.GetFilterdImageBitMap(), out Message); _Image MultiImage = new _Image(); MultiImage.SetFilterdBitMap(ref MultBitMap); MultiImage.ReplaceMainImageWithiltedImage(); // Applay Gaussian Filter GaussianFilter NewFilter = new GaussianFilter(); NewFilter.Sigma = 2; NewFilter.KernalSize = 7; NewFilter.ApplayFilter(XsobelImage); NewFilter.ApplayFilter(YsobelImage); NewFilter.ApplayFilter(MultiImage); Bitmap SobelXBitMap = XsobelImage.GetFilterdImageBitMap(); Bitmap SobelyBitMap = YsobelImage.GetFilterdImageBitMap(); MainImage = ApplayImage.GetMainImage(); ImageBitMap = new Bitmap(MainImage); int imageWidth = ApplayImage.ImageWidth, ImageHieght = ApplayImage.ImageHeight; double[,] Result = new double[ImageHieght, imageWidth]; double[,] R = new double[ImageHieght, imageWidth]; double Rmax = double.MinValue; for (int i = 0; i < ImageHieght; i++) { for (int j = 0; j < imageWidth; j++) { double det = (SobelXBitMap.GetPixel(i, j).R *SobelyBitMap.GetPixel(i, j).R) - (MultBitMap.GetPixel(i, j).R *MultBitMap.GetPixel(i, j).R); double trace = (SobelXBitMap.GetPixel(i, j).R + SobelyBitMap.GetPixel(i, j).R); R[i, j] = det - (trace * trace / 100); if (R[i, j] > Rmax) { Rmax = R[i, j]; } //int RGB = (int)R[i, j]; //ImageBitMap.SetPixel(i, j, Color.FromArgb(RGB , RGB , RGB)); } } int count = 0; for (int i = 2; i < ImageHieght - 1; i++) { for (int j = 2; j < imageWidth - 1; j++) { if ((R[i, j] > Rmax / 10) && (R[i, j] > R[i - 1, j - 1]) && (R[i, j] > R[i - 1, j]) && (R[i, j] > R[i - 1, j + 1]) && (R[i, j] > R[i, j - 1]) && (R[i, j] > R[i, j + 1]) && (R[i, j] > R[i + 1, j - 1]) && (R[i, j] > R[i + 1, j]) && (R[i, j] > R[i + 1, j + 1])) { ImageBitMap.SetPixel(i, j, Color.Red); count++; } //if (R[i, j] > 0.1 * Rmax && R[i, j] > R[i - 1, j - 1] && R[i, j] > R[i - 1, j] && R[i, j] > R[i - 1, j + 1] && R[i, j] > R[i, j - 1] && R[i, j] > R[i, j + 1] && R[i, j] > R[i + 1, j - 1] && R[i, j] > R[i + 1, j] && R[i, j] > R[i + 1, j + 1]) //{ // //Result[i, j] = 1; // ImageBitMap.SetPixel(i, j, Color.Red); // count++; //} } } Console.WriteLine(count); ApplayImage.SetFilterdBitMap(ref ImageBitMap); }