private string reconhecerCaptcha(Image img) { Bitmap _bitmap = new Bitmap(img); _bitmap = _bitmap.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Erosion erosion = new Erosion(); Dilatation dilatation = new Dilatation(); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(200, 255); cor.Green = new AForge.IntRange(200, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering(); Closing close = new Closing(); GaussianSharpen gs = new GaussianSharpen(); ContrastCorrection cc = new ContrastCorrection(); bc.MinHeight = 10; FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter); pictureBox1.Image = seq.Apply(_bitmap); string recognedString = OCR((Bitmap)pictureBox1.Image); return(recognedString); }
public static Task <(Bitmap, string)> DeCaptchAsync(Image img) { return((Task <(Bitmap, string)>)Task.Run(() => { string value; Bitmap bmp = new Bitmap(img); bmp = bmp.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Erosion erosion = new Erosion(); Dilatation dilatation = new Dilatation(); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); //cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(50, 255); //cor.Green = new AForge.IntRange(200, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering() { MinHeight = 10 }; Closing close = new Closing(); GaussianSharpen gs = new GaussianSharpen(); ContrastCorrection cc = new ContrastCorrection(); FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter, dilatation); Image image = seq.Apply(bmp); value = OCR((Bitmap)image); return ((Bitmap)image, value); })); }
private bool BlobCounter() { // lock image BitmapData bitmapData = _bitmap.LockBits(ImageLockMode.ReadWrite); // step 1 - turn background to black ColorFiltering colorFilter = new ColorFiltering(); colorFilter.Red = new IntRange(0, 64); colorFilter.Green = new IntRange(0, 64); colorFilter.Blue = new IntRange(0, 64); colorFilter.FillOutsideRange = false; colorFilter.ApplyInPlace(bitmapData); // step 2 - locating objects BlobCounter blobCounter = new BlobCounter(); blobCounter.FilterBlobs = true; blobCounter.MinHeight = 100; blobCounter.ProcessImage(bitmapData); Blob[] blobs = blobCounter.GetObjectsInformation(); _bitmap.UnlockBits(bitmapData); // step 3 - check objects' type and highlight SimpleShapeChecker shapeChecker = new SimpleShapeChecker(); using (var g = Graphics.FromImage(_bitmap)) using (Pen pen = new Pen(Color.Red, 2)) { for (int i = 0; i < blobs.Length; i++) { //Debug.WriteLine(String.Format("Blob {0}: W: {1} H:{2} ", i, blobs[i].Rectangle.Width, blobs[i].Rectangle.Height)); List <IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blobs[i]); List <IntPoint> corners; if (shapeChecker.IsConvexPolygon(edgePoints, out corners)) { pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; g.DrawRectangle(pen, blobs[i].Rectangle); } } } RectRight = new Rectangle(); RectLeft = new Rectangle(); if (blobs.Length != 2 || blobs.Any(b => b.Rectangle.Width > 47)) { return(false); } else { RectLeft = blobs.OrderBy(b => b.Rectangle.Left).First().Rectangle; RectRight = blobs.OrderBy(b => b.Rectangle.Left).Last().Rectangle; return(true); } }
public static Bitmap RGBfilter(Bitmap source) // rgb 필터 { ///////////// ini 객체 생성 시작 ///////////////////////////////////////////////////// //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe"); string pathini = exefileinfo.Directory.FullName.ToString(); //프로그램 실행되고 있는데 path 가져오기 string fileName = @"\PLOCRconfig.ini"; // 환경설정 파일명 string filePath = pathini + fileName; //ini 파일 경로 DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌) //////////// ini 객체 생성 끝 ///////////////////////////////////////////////////////// int redMin = int.Parse(ini.GetIniValue("색상필터값", "RedMin")); int redMax = int.Parse(ini.GetIniValue("색상필터값", "RedMax")); int greenMin = int.Parse(ini.GetIniValue("색상필터값", "GreenMin")); int greenMax = int.Parse(ini.GetIniValue("색상필터값", "GreenMax")); int blueMin = int.Parse(ini.GetIniValue("색상필터값", "BlueMin")); int blueMax = int.Parse(ini.GetIniValue("색상필터값", "BlueMax")); // create filter ColorFiltering filter = new ColorFiltering(); // set color ranges to keep filter.Red = new IntRange(redMin, redMax); filter.Green = new IntRange(greenMin, greenMax); filter.Blue = new IntRange(blueMin, blueMax); Bitmap processedImage = filter.Apply(source); return(processedImage); }
public static void FilterToRed(Bitmap img) { // create filter //EuclideanColorFiltering filter = new EuclideanColorFiltering(); //// set center colol and radius //filter.CenterColor = new RGB(180, 30, 30); //filter.Radius = 30; //// apply the filter //filter.ApplyInPlace(img); //HSLFiltering filter = new HSLFiltering(); //filter.Hue = new IntRange(0, 6); //these settings should works, if not //filter.Saturation = new Range(0.6f, 1f); //filter.Luminance = new Range(0.3f, 0.60f); ////filter ColorFiltering colorFilter = new ColorFiltering(); colorFilter.Red = new IntRange(140, 210); colorFilter.Green = new IntRange(0, 80); colorFilter.Blue = new IntRange(0, 80); colorFilter.ApplyInPlace(img); //BlobsFiltering filter = new BlobsFiltering(); //filter.CoupledSizeFiltering = true; //filter.MinWidth = 3; //filter.MinHeight = 3; //// apply the filter //filter.ApplyInPlace(img); }
private void sonYeni(object sender, NewFrameEventArgs eventArgs) { pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone(); Bitmap video = (Bitmap)eventArgs.Frame.Clone(); if (takip == 1) { ColorFiltering colorfilter = new ColorFiltering(); colorfilter.Red = new IntRange(Red, redMax); colorfilter.Green = new IntRange(Green, greenMax); colorfilter.Blue = new IntRange(Blue, blueMax); colorfilter.ApplyInPlace(video); BlobCounter blobCounter = new BlobCounter(); blobCounter.MinHeight = 20; blobCounter.MinWidth = 20; blobCounter.ObjectsOrder = ObjectsOrder.Size; blobCounter.ProcessImage(video); Rectangle[] rect = blobCounter.GetObjectsRectangles(); if (rect.Length > 0) { Rectangle obj = rect[0]; Graphics gr = Graphics.FromImage(video); using (Pen pen = new Pen(Color.White, 3)) { gr.DrawRectangle(pen, obj); } gr.Dispose(); } pictureBox2.Image = video; } }
public static Bitmap ApplyFilters03(Image img) { Bitmap image = new Bitmap(img); image = image.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); GaussianSharpen gs = new GaussianSharpen(); GaussianSharpen sharp = new GaussianSharpen(4, 21); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(200, 255); cor.Green = new AForge.IntRange(200, 255); //FiltersSequence seq = new FiltersSequence(gs); //var filteredImage = seq.Apply(image); //var image2 = AForge.Imaging.Image.Clone(image, PixelFormat.Format8bppIndexed); //AForge.Imaging.Image.SetGrayscalePalette(image2); //SISThreshold filter = new SISThreshold(); //filter.ApplyInPlace(image2); return(image); }
private Image <Gray, Byte> prepareImg3(System.Drawing.Image img, int threshold, bool invertImg) { // create filter ColorFiltering filter = new ColorFiltering(); // set color ranges to keep //filter.Red = new AForge.IntRange(125, 255); //filter.Green = new AForge.IntRange(0, 95); //filter.Blue = new AForge.IntRange(0, 95); filter.Red = new AForge.IntRange(METState.Current.target_R_min, METState.Current.target_R_max); filter.Green = new AForge.IntRange(METState.Current.target_G_min, METState.Current.target_G_max); filter.Blue = new AForge.IntRange(METState.Current.target_B_min, METState.Current.target_B_max); // apply the filter Bitmap colorChannelImg = filter.Apply((Bitmap)img); temp_Image = colorChannelImg; Image <Gray, Byte> GrayImg = new Image <Gray, byte>((Bitmap)colorChannelImg); EmgImgProcssing = new ImageProcessing_Emgu(); GrayImg = EmgImgProcssing.Filter_Threshold2(GrayImg, threshold, invertImg).Erode(1).Dilate(1); return(GrayImg); }
public static Bitmap ApplyFilters(Image img) { Bitmap imagem = new Bitmap(img); imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Erosion erosion = new Erosion(); Dilatation dilatation = new Dilatation(); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(200, 255); cor.Green = new AForge.IntRange(200, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering(); Closing close = new Closing(); GaussianSharpen gs = new GaussianSharpen(); ContrastCorrection cc = new ContrastCorrection(); bc.MinHeight = 10; FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter); var filteredImage = seq.Apply(imagem); return(filteredImage); }
private void Button_Belirt_Click(object sender, EventArgs e) { Bitmap image = (Bitmap)pictureBox1.Image.Clone(); ColorFiltering colorFilter = new ColorFiltering(); colorFilter.Red = new IntRange(red, (int)numericUpDownRed.Value); colorFilter.Green = new IntRange(green, (int)numericUpDownGreen.Value); colorFilter.Blue = new IntRange(blue, (int)numericUpDownBlue.Value); colorFilter.ApplyInPlace(image); BlobCounter blobCounter = new BlobCounter(); blobCounter.MinHeight = 100; blobCounter.MinWidth = 300; blobCounter.ObjectsOrder = ObjectsOrder.Size; blobCounter.ProcessImage(image); Rectangle[] rectangle = blobCounter.GetObjectsRectangles(); // bundan bir daha oluştur if (rectangle.Length > 0) //içerde beyazları tespit etmek için { size = rectangle[0].Size; //MessageBox.Show(size.ToString()); Rectangle objectt = rectangle[0]; Graphics graphic = Graphics.FromImage(image); using (Pen pen = new Pen(Color.Turquoise, 10)) { graphic.DrawRectangle(pen, objectt); } graphic.Dispose(); } pictureBox2.Image = image; }
public ColorFilteringFilter() { _colorFiltering = new ColorFiltering(); _colorFiltering.Blue = new AForge.IntRange(25, 230); _colorFiltering.Red = new AForge.IntRange(25, 230); _colorFiltering.Green = new AForge.IntRange(25, 230); }
private void InitializeFilters() { grayscaleFilter = new Grayscale(0.299, 0.587, 0.114); bradleyLocalFilter = new BradleyLocalThresholding(); bradleyLocalFilter.WindowSize = 9; bradleyLocalFilter.PixelBrightnessDifferenceLimit = 0.01f; plateBlobsFiltering = new BlobsFiltering(10, 20, 80, 66); blobCounter = new BlobCounter(); blobCounter.FilterBlobs = true; blobCounter.MinWidth = 50; blobCounter.MinHeight = 10; blobCounter.MaxWidth = 520; blobCounter.MaxHeight = 110; plateBlobCounter = new BlobCounter(); shapeChecker = new SimpleShapeChecker(); otsuThresholdFilter = new OtsuThreshold(); fillHoles = new FillHoles(); fillHoles.MaxHoleWidth = 100; fillHoles.MaxHoleHeight = 40; pen = new Pen(Color.GreenYellow, 4); openingFilter = new Opening(); contrastCorrectionFilter = new ContrastCorrection(80); colorFiltering = new ColorFiltering(); colorFiltering.Red = new IntRange(150, 255); colorFiltering.Green = new IntRange(150, 255); colorFiltering.Blue = new IntRange(150, 255); colorFiltering.FillOutsideRange = true; invert = new Invert(); }
public static void NajdiCasRustuVmisce(string slozka, int i) { /* Definice rozostøovacího filtru */ GaussianBlur filterBlur = new GaussianBlur(10, 10); /* Definice modrého filtru */ ColorFiltering filterGreen = new ColorFiltering(); filterGreen.Red = new IntRange(55, 80); filterGreen.Green = new IntRange(55, 100); filterGreen.Blue = new IntRange(40, 65); /* Naètu si obrazky za každou misku */ string[] seznamObrazku = Directory.GetFiles(slozka, "*.png", SearchOption.TopDirectoryOnly); /* Bitmap image1 = (Bitmap)Bitmap.FromFile(seznamObrazku[42]); * Bitmap image2 = (Bitmap)Bitmap.FromFile(seznamObrazku[43]); * string nazevObr = ObecneMetody.DatumCasZNazvu(seznamObrazku[42], "\\", ".png"); * filterBlur.ApplyInPlace(image1); * image1.Save(slozka + "\\" + nazevObr + "_sedy.png");*/ foreach (string obrazek in seznamObrazku) { Bitmap image = (Bitmap)Bitmap.FromFile(obrazek); string nazevObr = ObecneMetody.DatumCasZNazvu(obrazek, "\\", ".png"); filterBlur.ApplyInPlace(image); //filterGreen.ApplyInPlace(image); image.Save(slozka + "\\" + nazevObr + "_sedy.png"); //Console.WriteLine(obrazek); } }
private string reconhecerCaptcha(Image img) { Bitmap imagem = new Bitmap(img); imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Erosion erosion = new Erosion(); Dilatation dilatation = new Dilatation(); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(200, 255); cor.Green = new AForge.IntRange(200, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering(); Closing close = new Closing(); GaussianSharpen gs = new GaussianSharpen(); ContrastCorrection cc = new ContrastCorrection(); bc.MinHeight = 10; GrayscaleRMY gray = new GrayscaleRMY(); Threshold thr = new Threshold(200); Difference diff = new Difference(dilatation.Apply(imagem)); FiltersSequence seq = new FiltersSequence(diff, inverter, erosion, gray, thr, cc); pictureBox.Image = seq.Apply(imagem); string reconhecido = OCR((Bitmap)pictureBox.Image); return(reconhecido); }
private string reconhecerCaptcha(Image img) { Bitmap imagem = new Bitmap(img); imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Erosion erosion = new Erosion(); Dilatation dilatation = new Dilatation(); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); cor.Red = new AForge.IntRange(200, 255); cor.Green = new AForge.IntRange(200, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering(); Closing close = new Closing(); GaussianSharpen gs = new GaussianSharpen(); ContrastCorrection cc = new ContrastCorrection(); bc.MinHeight = 10; FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter); imagem = seq.Apply(imagem); //imagem.Save(Directory.GetCurrentDirectory() + "\\Captcha2.png", System.Drawing.Imaging.ImageFormat.Png); string reconhecido = OCR(imagem); //string reconhecido = ocr.Principal(Directory.GetCurrentDirectory() + "\\Captcha2.png"); return(reconhecido); }
private Bitmap LimparImagem(Image img) { var imagem = new Bitmap(img); imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); var inverter = new Invert(); var cor = new ColorFiltering { Blue = new AForge.IntRange(200, 255), Red = new AForge.IntRange(200, 255), Green = new AForge.IntRange(200, 255) }; var open = new Opening(); var bc = new BlobsFiltering(); var gs = new GaussianSharpen(); var cc = new ContrastCorrection(); bc.MinHeight = 10; var seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter); imagem = seq.Apply(imagem); return(imagem); }
public void ProcessImage(string urlImage) //Görüntünün işlendiği metot. { Stopwatch watch = Stopwatch.StartNew(); //Görüntünün işlenmesi sırasında süre tutulması için süre başlatılmaktadır. Bitmap root = new Bitmap(urlImage); //Root Image (Default Image) Bitmap bmp = new Bitmap(root); //Resize Image Bitmap bmp1 = new Bitmap(root); //Smoothing Image Bitmap bmp2 = new Bitmap(root); //Color Filtering Image string outputstring = ""; ///Root outputstring = this.Ocr(root); txtNumbePlate1.Text = outputstring; ptBNumberPlate1.Image = root; //Resize Image to : 1920x1080 outputstring = ""; ResizeBilinear filterr = new ResizeBilinear(1920, 1080); bmp = filterr.Apply(bmp); outputstring = this.Ocr(bmp); txtNumbePlate2.Text = outputstring; ptBNumberPlate2.Image = bmp; //Smoothing outputstring = ""; if (BitmapFilter.GaussianBlur(bmp1, 4)) { if (BitmapFilter.GaussianBlur(bmp1, 4)) { if (BitmapFilter.MeanRemoval(bmp1, 9)) { } } } outputstring = this.Ocr(bmp1); txtNumbePlate3.Text = outputstring; ptBNumberPlate3.Image = bmp1; //Color Filtering outputstring = ""; ColorFiltering filter = new ColorFiltering(); filter.Green = new IntRange(175, 255); bmp2 = filter.Apply(bmp2); outputstring = this.Ocr(bmp2); txtNumbePlate4.Text = outputstring; ptBNumberPlate4.Image = bmp2; watch.Stop(); //Stop The Timer lblTime.Text = String.Format("Total Time : {0} Seconds", watch.Elapsed.TotalSeconds); lblCount.Text = position.ToString() + "/" + lstimages.Count.ToString(); System.Threading.Thread.Sleep(5000); }
public Filter() { InitializeComponent(); colorfilter = new ColorFiltering(); // this.drawArea.Initialize(); this.drawArea.Image = (Bitmap)frmImgProcess.imgProcess.drawArea.Image; cb_FillType.SelectedIndex = 0; saveImgToXml = new SaveImageToXml(); }
//rgb private void RGB() { //crop(); Bitmap a = new Bitmap(Original_Image.Image); Bitmap bim = (Bitmap)a.Clone(); BitmapData bitmapData = bim.LockBits( new Rectangle(0, 0, bim.Width, bim.Height), ImageLockMode.ReadWrite, bim.PixelFormat); // step 1 - turn background to black ColorFiltering colorFilter = new ColorFiltering(); colorFilter.Red = new IntRange(130, 195); colorFilter.Green = new IntRange(130, 195); colorFilter.Blue = new IntRange(130, 195); colorFilter.FillOutsideRange = false; bm_crop = colorFilter.Apply(bitmapData); // crop_image.Image = bm_crop; //pictureBox2.Image = bm_crop; //crop_image.Image = Original_Image.Image; //rgb Bitmap bm = (Bitmap)bm_crop; // crop_image.Image; //deklarasi variable double redColors = 0; double greencolors = 0; double blueColor = 0; double pixelColor = 0; for (int y = 0; y < bm.Height; y++) { for (int x = 0; x < bm.Width; x++) { Color c = bm.GetPixel(x, y); if (c.R != 0 && c.G != 0 && c.B != 0) { pixelColor++;//jumlahpixel //mengambil nilai rgb redColors += c.R; greencolors += c.G; blueColor += c.B; } } } //rata-rata nilai rgb double red = (redColors / pixelColor); double green = (greencolors / pixelColor); double blue = (blueColor / pixelColor); red = Math.Round(red, 2); green = Math.Round(green, 2); blue = Math.Round(blue, 2); //textbox txt_R.Text = red.ToString(); txt_G.Text = green.ToString(); txt_B.Text = blue.ToString(); }
public static void Face_Detection(Bitmap video) { ColorFiltering filter = new ColorFiltering(); // set color ranges to keep filter.Red = new IntRange(0, 75); filter.Green = new IntRange(0, 75); filter.Blue = new IntRange(10, 255); filter.ApplyInPlace(video); }
public ListBoxItem Save() { var redRange = new AForge.IntRange((int)redNumericUpDown1.Value, (int)redNumericUpDown2.Value); var greenRange = new AForge.IntRange((int)greenNumericUpDown1.Value, (int)greenNumericUpDown2.Value); var blueRange = new AForge.IntRange((int)blueNumericUpDown1.Value, (int)blueNumericUpDown2.Value); var filter = new ColorFiltering(redRange, greenRange, blueRange); var text = $"ColorFiltering ({redRange} - {greenRange} - {blueRange})"; return(new ListBoxItem(text, filter)); }
/// <summary> /// Méthode qui analyse les images envoyées par le client /// Repère les formes présentes, les découpe et les enregistre en ficiers distincts /// </summary> public void ProcessImage() { using (CamCapturer.CamCapturer cam = new CamCapturer.CamCapturer()) { Picture = cam.GetCapture(); Copy = cam.GetCapture(); } ShapeChecker = new SimpleShapeChecker(); ShapeAnalyser = new BlobCounter(); string date = DateTime.Now.Date.ToString("dMyyyy"); FolderName = string.Format("Kuhlschrank-{0}", date); ShapeAnalyser.FilterBlobs = true; ShapeAnalyser.MinHeight = 200; ShapeAnalyser.MinWidth = 500; Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), FolderName)); BitmapData bitData = Picture.LockBits(new Rectangle(0, 0, Picture.Width, Picture.Height), ImageLockMode.ReadWrite, Picture.PixelFormat); ColorFiltering filter = new ColorFiltering(); filter.Red = new IntRange(0, 64); filter.Green = new IntRange(0, 64); filter.Blue = new IntRange(0, 64); filter.FillOutsideRange = false; filter.ApplyInPlace(bitData); ShapeAnalyser.ProcessImage(bitData); Blob[] blobs = ShapeAnalyser.GetObjectsInformation(); Picture.UnlockBits(bitData); for (int i = 0; i < blobs.Length; i++) { List <IntPoint> edgePoints = ShapeAnalyser.GetBlobsEdgePoints(blobs[i]); List <IntPoint> corners; ShapeChecker.IsConvexPolygon(edgePoints, out corners); IntPoint pt0 = corners[0]; IntPoint pt1 = corners[1]; IntPoint pt2 = corners[2]; double width = Math.Sqrt(Math.Pow(pt1.X - pt0.X, 2) + Math.Pow(pt1.Y - pt0.Y, 2)); double height = Math.Sqrt(Math.Pow(pt2.X - pt1.X, 2) + Math.Pow(pt2.Y - pt1.Y, 2)); Rectangle crop = new Rectangle(corners[0].X, corners[1].Y, (int)width + 50, (int)height + 50); Bitmap target = new Bitmap(crop.Width, crop.Height); using (Graphics gr = Graphics.FromImage(target)) gr.DrawImage(Copy, new Rectangle(0, 0, target.Width, target.Height), crop, GraphicsUnit.Pixel); target.Save(string.Format(@"{0}\{1}\crop{2}.jpg", Path.GetTempPath(), FolderName, i)); } }
public static void FilterColors(ref Bitmap bm, IntRange red, IntRange green, IntRange blue) { ColorFiltering colorFilter = new ColorFiltering { Red = red, Green = green, Blue = blue }; colorFilter.ApplyInPlace(bm); }
public void ApplyGrayFilter(Bitmap bmp) { var filter = new ColorFiltering(); filter.Red = new IntRange(150, 200); filter.Green = new IntRange(150, 200); filter.Blue = new IntRange(150, 200); //filter.ApplyInPlace(img); var grayscale = new Grayscale(0.2125, 0.7154, 0.0721); var img = grayscale.Apply(bmp); }
public LaserDetect() { point = new Mrg.Point(-1, -1); //point = new AForge.Point(-1, -1); xPos = yPos = 0; colorFilter = new ColorFiltering(); colorFilter.Red = new IntRange(150, 255); //150, 180 colorFilter.Green = new IntRange(50, 120); //0,90 colorFilter.Blue = new IntRange(80, 220); //0,100 }
private void ActualizarFiltro() { ColorFiltering filtroColor = new ColorFiltering(); filtroColor.Red = red; filtroColor.Green = green; filtroColor.Blue = blue; IFilter filtro = filtroColor; Bitmap bmp = new Bitmap(peCaptcha.Image); Bitmap xImage = filtro.Apply(bmp); peCaptcha.Image = xImage; }
private void ActualizarFiltro() { ColorFiltering FiltroColor = new ColorFiltering(); FiltroColor.Red = red; FiltroColor.Green = green; FiltroColor.Blue = blue; IFilter Filtro = FiltroColor; Bitmap bmp = new Bitmap(pictureCapchaE.Image); Bitmap XImage = Filtro.Apply(bmp); pictureCapchaE.Image = XImage; }
public static Bitmap FilterImage(Bitmap originalBitmap) { var bitmap = new Bitmap(originalBitmap); var imagem = bitmap.Clone(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); var colorFilter = new ColorFiltering(); colorFilter.FillColor = new RGB(255, 255, 255); colorFilter.Red = colorFilter.Green = colorFilter.Blue = new IntRange(0, 40); colorFilter.ApplyInPlace(bitmap); bitmap = new FiltersSequence(colorFilter, new Invert(), new Erosion()).Apply(imagem); return(bitmap); }
void FinalVideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; try { //kırmızı if (radioButton1.Checked) { //ColorFilter'in yapildigi yer ColorFiltering filter = new ColorFiltering(); int a1 = int.Parse(textBox1.Text); int a2 = int.Parse(textBox2.Text); int a3 = int.Parse(textBox3.Text); int b1 = int.Parse(textBox4.Text); int b2 = int.Parse(textBox5.Text); int b3 = int.Parse(textBox6.Text); filter.Red = new IntRange(a1, b1); filter.Green = new IntRange(a2, b2); filter.Blue = new IntRange(a3, b3); filter.ApplyInPlace(image1); //Görüntü üzerinde algilanan renk kare icine aliniyor cevresiniciz(image1); } //mavi if (radioButton2.Checked) { int a1 = int.Parse(textBox7.Text); int a2 = int.Parse(textBox8.Text); int a3 = int.Parse(textBox9.Text); // Euclidean Color Filterin yapildigi yer EuclideanColorFiltering filter = new EuclideanColorFiltering(); // Algilanacak renk belirleniyor ve orta noktasi belirleniyor filter.CenterColor = new RGB(Color.FromArgb(a1, a2, a3)); filter.Radius = 50; // filtre calistiriliyor filter.ApplyInPlace(image1); //Görüntü üzerinde algilanan rengi cevrcevelemek veya hedeflemek icin gerekli Methodlar cevresiniciz(image1); //hedefal(image); } } catch { } }
public BlobFinder(IDeviationProvider provider) { this.provider = provider; BlobCounter = new BlobCounter(); BlobCounter.FilterBlobs = true; BlobCounter.MinHeight = 5; BlobCounter.MinWidth = 5; ColorFilter = new ColorFiltering(); ColorFilter.Red = new IntRange(0, 30); ColorFilter.Green = new IntRange(0, 50); ColorFilter.Blue = new IntRange(0, 30); ColorFilter.FillOutsideRange = false; }