private void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Console.WriteLine(image.Width + " -- " + image.Height); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (radioButtonKırmızı.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; filter.ApplyInPlace(image1); Nesnetespit(image1); } if (radioButtonMavi.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(30, 144, 215)); filter.Radius = 100; filter.ApplyInPlace(image1); Nesnetespit(image1); } if (radioButtonYeşil.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 215, 0)); filter.Radius = 100; filter.ApplyInPlace(image1); Nesnetespit(image1); } if (radioButtonElleKontrol.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; filter.ApplyInPlace(image1); Nesnetespit(image1); } }
/// <summary> /// The ColorFilter is applied with the ColorRange from the colony. /// </summary> public void FilterImgColonySelect() { // CREATE NEW BITMAP IMAGE this.bitmap = new Bitmap((Bitmap)pictureBox.Image); // LOCK IMAGE this.bitmapData = bitmap.LockBits( new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat); // CREATE NEW FILTER EuclideanColorFiltering filter = new EuclideanColorFiltering(); // SET COLOR RANGE FOR BACKGROUND filter.CenterColor = ColonyColor; filter.Radius = 100; // APPLY FILTER ON IMAGE filter.ApplyInPlace(bitmapData); }
//***************************************** void cam_goruntu_new_frame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); var filter2 = new Mirror(false, true); filter2.ApplyInPlace(image1); var filter = new Mirror(false, true); filter.ApplyInPlace(image); pictureBox1.Image = image; EuclideanColorFiltering filter1 = new EuclideanColorFiltering(); filter1.CenterColor = new RGB(Color.FromArgb(10, 14, 200)); filter1.Radius = 100; filter1.ApplyInPlace(image1); nesnebul(image1); }
private void kamera_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap reelimage = (Bitmap)eventArgs.Frame.Clone(); image.RotateFlip(RotateFlipType.Rotate180FlipY); reelimage.RotateFlip(RotateFlipType.Rotate180FlipY); EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); // Algılanacak Renk ve merkez noktası bulunur. filter.Radius = 120; filter.ApplyInPlace(image); //Filitre Çalıştırılır. cevreal(image); // Algilanan rengi Çevrçevelemek veya hedeflemek için gerekli Method. // cevreal(reelimage); pictureBox2.Image = reelimage; pictureBox1.Image = image; }
private void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (radioButton4.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } if (radioButton1.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(191, 0, 0)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } if (radioButton3.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } if (radioButton2.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 215, 0)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); image.RotateFlip(RotateFlipType.RotateNoneFlipX); image1.RotateFlip(RotateFlipType.RotateNoneFlipX); pictureBox1.Image = image; EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); }
private static Bitmap ApplyEuclideanColorFilter(Bitmap bitmap) { // create filter // ColorFiltering filter = new ColorFiltering( ); // // set color ranges to keep // filter.Red = new IntRange( 30, 100 ); // filter.Green = new IntRange( 60, 180 ); // filter.Blue = new IntRange( 120, 255 ); // // apply the filter // // var filteredBitmap = filter.Apply( bitmap ); var filter = new EuclideanColorFiltering { CenterColor = new RGB(Color.FromArgb(10, 79, 170)), Radius = 70 }; var filteredBitmap = filter.Apply(bitmap); return(filteredBitmap); }
/* FinalFrame_NewFrame is an event Handler which gets fired every time the webcam captures a fresh image. * This allows image data to be intercepted and different image processing techniques can be applied.*/ private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; //pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; // pictureBox1.Image = image; /* Insert break-point here to view width and height of video in the ‘Locals’ Window. */ if (radiobtnRed.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); ProcessIMG(image1); } if (radiobtnBlue.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); ProcessIMG(image1); } }
private void TakeSnapshot_funct(Bitmap img) { Bitmap image = Grayscale.CommonAlgorithms.RMY.Apply(img); // find edges SobelEdgeDetector EdgeFilter = new SobelEdgeDetector(); EdgeFilter.ApplyInPlace(image); // back to color format GrayscaleToRGB RGBfilter = new GrayscaleToRGB(); image = RGBfilter.Apply(image); // get rid of grays EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor.Red = 20; filter.CenterColor.Green = 20; filter.CenterColor.Blue = 20; filter.FillOutside = false; filter.Radius = 200; filter.ApplyInPlace(image); Color peek; for (int y = 0; y < image.Height; y++) { for (int x = 0; x < image.Width; x++) { peek = image.GetPixel(x, y); if (peek.R != 0) { image.SetPixel(x, y, Color.Blue); } } } image.MakeTransparent(Color.Black); SnapshotImage = image; SnapshotOriginalImage = image; }
private void kullanilacakcihaz_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); image = new Mirror(false, true).Apply(image); görüntü_box.Image = image; EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(red, green, blue)); // Algılanacak Renk ve merkez noktası bulunur. filter.Radius = 80; filter.ApplyInPlace(image1); //Filitre Çalıştırılır. cevreal(image1); // Algilanan rengi Çevrçevelemek veya hedeflemek için gerekli Method. BlobsFiltering filter2 = new BlobsFiltering( ); // Belirli Piksel Altındaki Görüntüler Alınmadı. filter2.CoupledSizeFiltering = true; filter2.MinWidth = 100; filter2.MinHeight = 60; filter2.ApplyInPlace(image1); image1 = new Mirror(false, true).Apply(image1); pictureBox2.Image = image1; }
private void final_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap goruntu = (Bitmap)eventArgs.Frame.Clone(); Bitmap goruntu2 = (Bitmap)eventArgs.Frame.Clone(); Mirror filter2 = new Mirror(false, true); filter2.ApplyInPlace(goruntu); pictureBox1.Image = goruntu; EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; Mirror filter1 = new Mirror(false, true); filter1.ApplyInPlace(goruntu2); filter.ApplyInPlace(goruntu2); nesnebul(goruntu2); dongu(goruntu2); OtsuThreshold otsuFiltre = new OtsuThreshold(); }
private Bitmap getWebcamPic(NewFrameEventArgs eventArgs) { Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone(); // Threshold filter = new Threshold((int)tresholdNumeric.Value); // Grayscale GRfilter = new Grayscale(0.2125, 0.7154, 0.0721); EuclideanColorFiltering euclidFilter = new EuclideanColorFiltering(new RGB((byte)RNumeric.Value, (byte)GNumeric.Value, (byte)BNumeric.Value), (byte)radiusNumeric.Value); var Mir = new Mirror(false, true); Mir.ApplyInPlace(bitmap); Rectangle cloneRect = new Rectangle(0, 0, 320, 240); PixelFormat format = bitmap.PixelFormat; Bitmap cloneBitmap = bitmap.Clone(cloneRect, format); euclidFilter.ApplyInPlace(cloneBitmap); // Bitmap grayImage = GRfilter.Apply(cloneBitmap); // filter.ApplyInPlace(grayImage); return(cloneBitmap); }
void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Icon newIcon = new Icon(@"c:\users\gregster\documents\visual studio 2012\Projects\WebCamTrack\WebCamTrack\bin\Debug\favicon.ico"); BlobCounter bc = new BlobCounter(); EuclideanColorFiltering filter = new EuclideanColorFiltering(); Bitmap video = (Bitmap)eventArgs.Frame.Clone(); //sem filtro Bitmap video1 = (Bitmap)eventArgs.Frame.Clone(); // imagem com filtro // filter.CenterColor = new RGB(0, 0, 0); filter.Radius = 100; filter.ApplyInPlace(video1);//aplicando o filtro bc.MinWidth = 5; bc.MinHeight = 5; bc.FilterBlobs = true; // bc.ObjectsOrder = ObjectsOrder.Size; bc.ProcessImage(video1);// processando a imagem que ja foi filtrada para identificar objetos Rectangle[] rects = bc.GetObjectsRectangles(); foreach (Rectangle recs in rects) { if (rects.Length > 0) { Rectangle objectRect = rects[0]; Graphics g = Graphics.FromImage(video);//identificar objetos a partir da imagem com filtro Graphics h = Graphics.FromImage(video1); using (Pen pen = new Pen(Color.FromArgb(160, 255, 160), 5)) { g.DrawIcon(newIcon, objectRect); // g.DrawRectangle(pen, objectRect); h.DrawRectangle(pen, objectRect); } g.Dispose(); h.Dispose(); } } pictureBox1.Image = video; pictureBox2.Image = video1; }
public BlobCounter AnalyzePicture(TargetProfile target, System.Drawing.Bitmap porcessedImg) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(target.Color); filter.Radius = target.FilterRadius; filter.ApplyInPlace(porcessedImg); BlobCounter blobCounter = new BlobCounter(); blobCounter.MinWidth = target.MinSize; blobCounter.MinHeight = target.MinSize; blobCounter.FilterBlobs = true; blobCounter.ObjectsOrder = ObjectsOrder.Size; blobCounter.MaxWidth = blobCounter.MaxHeight = target.MaxSize; System.Drawing.Imaging.BitmapData objectsData = porcessedImg.LockBits(new System.Drawing.Rectangle(0, 0, porcessedImg.Width, porcessedImg.Height), ImageLockMode.ReadOnly, porcessedImg.PixelFormat); Grayscale grayscaleFilter = new Grayscale(0.2125, 0.7154, 0.0721); UnmanagedImage grayImage = grayscaleFilter.Apply(new UnmanagedImage(objectsData)); porcessedImg.UnlockBits(objectsData); return(blobCounter); }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (rdiobtnKirmizi.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } if (rdbtnElleBelirleme.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; filter.ApplyInPlace(image1); nesnebul(image1); } }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (radio_red.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (radio_blue.Checked) //blue { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center color and radius filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (radio_green.Checked) // Green // create filter { EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center color and radius filter.CenterColor = new RGB(Color.FromArgb(0, 215, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (radiowhite.Checked) { // Green // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center color and radius filter.CenterColor = new RGB(Color.FromArgb(255, 255, 255)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (radi_manual_selection.Checked)//Manual Selection { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } }
/// <summary> /// Performs EuclidColorFilter, BlobCouter and Template Matching /// Input: image /// </summary> /// <param name="sourceImage">From Region Selection</param> /// <param name="blobedImage"></param> /// <param name="findingsImage"></param> public void chefEuclidFilter(Bitmap sourceImage, out List <string> similarity, out Point click, out Bitmap blobedImage, out Bitmap findingsImage) { Point cp = new Point(); similarity = new List <string>(); Bitmap sourceClone = sourceImage.Clone( new Rectangle(0, 0, sourceImage.Width, sourceImage.Height), sourceImage.PixelFormat); EuclideanColorFiltering euFilter = new EuclideanColorFiltering(); Bitmap filteredBitmap = sourceImage.Clone( new Rectangle(0, 0, sourceImage.Width, sourceImage.Height), sourceImage.PixelFormat); euFilter.CenterColor = new AForge.Imaging.RGB(Color.FromArgb(211, 203, 202, 200)); euFilter.Radius = 25; euFilter.ApplyInPlace(filteredBitmap); int blobCtr = 0; unsafe { BitmapData bitData = filteredBitmap.LockBits( new Rectangle(0, 0, filteredBitmap.Width, filteredBitmap.Height), ImageLockMode.ReadOnly, filteredBitmap.PixelFormat); blobCounter = new BlobCounter(); blobCounter.FilterBlobs = true; blobCounter.ProcessImage(bitData); Blob[] blobs = blobCounter.GetObjectsInformation(); ExhaustiveTemplateMatching tempalteMatching = new ExhaustiveTemplateMatching(treshold); //Loop on Images int errorOffset = 3; foreach (var item in recipe) { foreach (var blob in blobs) { //Detected too small if (blob.Rectangle.Width <= errorOffset) { continue; } //out of screen if (((blob.Rectangle.X) - errorOffset) < 0) { continue; } int estimateY = (blob.Rectangle.Y + yOffset); int estimateX = (blob.Rectangle.X + xOffset); if (!(estimateY >= sourceImage.Size.Height) && !(estimateX >= sourceImage.Size.Width)) { //Hightlight blobs Drawing.Rectangle(bitData, blob.Rectangle, Color.Red); blobCtr++; //Finder Block Size Rectangle rectSize = new Rectangle( blob.Rectangle.X - errorOffset, blob.Rectangle.Y - errorOffset, 64, 64); TemplateMatch[] matchings = tempalteMatching.ProcessImage(sourceClone, item, rectSize); unsafe { BitmapData data = sourceClone.LockBits( new Rectangle(0, 0, sourceClone.Width, sourceClone.Height), ImageLockMode.ReadOnly, sourceClone.PixelFormat); foreach (var match in matchings) { //Highlight Matches if (match.Similarity >= this.similarityOffset && match.Similarity < 0.90f) { Drawing.Rectangle(data, match.Rectangle, Color.Fuchsia); similarity.Add(match.Similarity.ToString()); int clickX = this.chefTable.X + match.Rectangle.X - 1; int clickY = this.chefTable.Y + match.Rectangle.Y - 1; cp = new Point(clickX, clickY); click = cp; } } sourceClone.UnlockBits(data); } //end of unsafe teamplate maching } //end of if condition }//end of blob loop } //end of ingredient image loop filteredBitmap.UnlockBits(bitData); }//end of unsafe blob filter if (similarity.Count <= 0) { cp = new Point(-1, -1); } blobedImage = filteredBitmap; findingsImage = sourceClone; click = cp; }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (rdiobtnKirmizi.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (rdiobtnMavi.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center color and radius filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (rdiobtnYesil.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center color and radius filter.CenterColor = new RGB(Color.FromArgb(0, 215, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } if (rdbtnElleBelirleme.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); nesnebul(image1); } }
private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs) { try { Bitmap video = (Bitmap)eventArgs.Frame.Clone(); Bitmap tmp = video.Clone() as Bitmap; //Create color filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new AForge.Imaging.RGB(color.R, color.G, color.B); filter.Radius = 90; filter.ApplyInPlace(tmp); BlobCounter blobcounter = new BlobCounter(); blobcounter.MinHeight = Convert.ToInt32(numericUpDown1.Value); blobcounter.MinWidth = Convert.ToInt32(numericUpDown2.Value); blobcounter.FilterBlobs = true; blobcounter.ObjectsOrder = ObjectsOrder.Size; //locate blobs blobcounter.ProcessImage(tmp); Rectangle[] rects = blobcounter.GetObjectsRectangles(); Blob[] bBlobs = blobcounter.GetObjectsInformation(); SimpleShapeChecker shapeChecker = new SimpleShapeChecker(); //draw rectangle around the biggest blob Pen yellowPen = new Pen(Color.Red, 5); foreach (Rectangle recs in rects) { if (rects.Length > 0) { Rectangle objectRect1 = recs; Graphics g = Graphics.FromImage(video); using (Pen pen = new Pen(Color.FromArgb(160, 255, 160), 5)) { g.DrawRectangle(pen, objectRect1); PointF drawPoin = new PointF(objectRect1.X, objectRect1.Y); int objectX = objectRect1.X + objectRect1.Width / 2 - video.Width / 2; int objectY = video.Height / 2 - (objectRect1.Y + objectRect1.Height / 2); String Blobinformation = "X= " + objectX.ToString() + "\nY= " + objectY.ToString() + "\nSize=" + objectRect1.Size.ToString(); g.DrawString(Blobinformation, new Font("Arial", 16), new SolidBrush(Color.Blue), drawPoin); if (objectY == 1) { // MessageBox.Show("BOOOOM!!!"); Console.WriteLine("BOOOOM!!!"); Console.WriteLine("X: {0} Y: {1}", objectX, objectY); video.SetResolution(500, 200); // g.Dispose(); break; } } g.Dispose(); } } //circle //for (int i = 0, n = bBlobs.Length; i < n; i++) //{ // List<IntPoint> edgePoints = blobcounter.GetBlobsEdgePoints(bBlobs[i]); // Graphics g = Graphics.FromImage(video); // AForge.Point center; // float radius; // // is circle ? // if (shapeChecker.IsCircle(edgePoints, out center, out radius)) // { // g.DrawEllipse(yellowPen, // (float)(center.X - radius), (float)(center.Y - radius), // (float)(radius * 2), (float)(radius * 2)); // } //} // //yellowPen.Dispose(); pictureBox1.Image = video; } catch (Exception) { numericUpDown1.Value = 5; numericUpDown1.Value = 5; MessageBox.Show("Erorr!!"); } // pictureBox2.Image = grayImage; }
//kameradan alınan görüntünün işleme kısmı private void FinalFrame_newFrame(object sender, NewFrameEventArgs eventArgs) { video_1 = (Bitmap)eventArgs.Frame.Clone(); video_2 = (Bitmap)eventArgs.Frame.Clone(); Mirror filter2 = new Mirror(false, true); filter2.ApplyInPlace(video_1); EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; filter.ApplyInPlace(video_1); BitmapData objectsData = video_1.LockBits(new Rectangle(0, 0, video_1.Width, video_1.Height), ImageLockMode.ReadOnly, video_1.PixelFormat); Grayscale grifiltresi = new Grayscale(0.2125, 0.7154, 0.0721); //Gri filtresi UnmanagedImage griresim = grifiltresi.Apply(new UnmanagedImage(objectsData)); video_1.UnlockBits(objectsData); BlobCounter blobcounter = new BlobCounter(); //birleşik pikselleri numaralandırma işlemi, nesne sayma blobcounter.MinWidth = 18; //sayılan nesnelerin minimum genişliği blobcounter.MinHeight = 18; //"" yüksekliği blobcounter.FilterBlobs = true; //şartlara uyanların işaretlenmesi blobcounter.ObjectsOrder = ObjectsOrder.Size; //boyutlarına göre sıralamaya sokma işlemi blobcounter.ProcessImage(griresim); //videodaki bloblar sayılıp işleniyor Rectangle[] rects = blobcounter.GetObjectsRectangles(); //blobcounter içerisindeki blobların verileri alınıyor Blob[] blobs = blobcounter.GetObjectsInformation(); pictureBox2.Image = video_2; foreach (Rectangle recs in rects) { Graphics g = Graphics.FromImage(video_1); if (rects.Length > 0) { Rectangle objectRect = rects[0]; x = objectRect.X + (objectRect.Width / 2); y = objectRect.Y + (objectRect.Height / 2); if (x < 213 && y < 160) { serialPort1.Write("1"); } if ((213 < x && x < 426) && y < 160) { serialPort1.Write("2"); } if (426 < x && x < 640 && y < 160) { serialPort1.Write("3"); } if ((x < 213 && (160 < y && y < 320))) { serialPort1.Write("4"); } if ((213 < x && x < 426) && (160 < y && y < 320)) { serialPort1.Write("5"); } if ((426 < x && x < 639) && (160 < y && y < 320)) { serialPort1.Write("6"); } if (x < 213 && (320 < y && y < 480)) { serialPort1.Write("7"); } if ((213 < x && x < 426) && (320 < y && y < 480)) { serialPort1.Write("8"); } if ((426 < x && x < 639) && (320 < y && y < 480)) { serialPort1.Write("9"); } using (Pen pen = new Pen(Color.FromArgb(252, 3, 26), 2)) { g.DrawRectangle(pen, objectRect); } g.DrawString(x.ToString() + "X" + y.ToString(), new Font("Arial", 12), Brushes.Red, new System.Drawing.Point(x, y)); g.Dispose(); } } pictureBox1.Image = video_1; }
private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs) { imge1 = (Bitmap)eventArgs.Frame.Clone(); Bitmap imge2 = (Bitmap)eventArgs.Frame.Clone(); if (radioButton1.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(225, 0, 0)); filter.Radius = 100; filter.ApplyInPlace(imge2); } if (radioButton2.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 255, 0)); filter.Radius = 100; filter.ApplyInPlace(imge2); } if (radioButton3.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 0, 255)); filter.Radius = 100; filter.ApplyInPlace(imge2); } switch (mode) { case 2: { g = Graphics.FromImage(imge2); g.DrawString(sayac.ToString(), new Font("Arial", 100), new SolidBrush(Color.Black), new PointF(2, 2)); g.Dispose(); } break; case 1: { BlobCounter blob = new BlobCounter(); blob.MinHeight = 15; blob.MinWidth = 15; blob.ObjectsOrder = ObjectsOrder.Size; blob.ProcessImage(imge2); Rectangle[] rects = blob.GetObjectsRectangles(); if (rects.Length > 0) { Rectangle obje = rects[0]; Graphics g = Graphics.FromImage(imge2); using (Pen pen = new Pen(Color.Black, 3)) { g.DrawRectangle(pen, obje); } X = obje.X; Y = obje.Y; g = Graphics.FromImage(imge2); string alan = ""; if (X >= 0 && 210 > X && Y >= 0 && Y < 160) { alan = "1.Bölge"; serialPort1.Write("1"); } else if (X >= 210 && X < 420 && Y >= 0 && Y < 160) { alan = "2.Bölge"; serialPort1.Write("2"); } else if (X >= 420 && X < 640 && Y >= 0 && Y < 160) { alan = "3.Bölge"; serialPort1.Write("3"); } else if (X >= 0 && X < 210 && Y >= 160 && 320 >= Y) { alan = "4.Bölge"; serialPort1.Write("4"); } else if (X >= 210 && X < 420 && Y >= 160 && 320 >= Y) { alan = "5.Bölge"; serialPort1.Write("5"); } else if (X >= 420 && 640 >= X && Y >= 160 && 320 >= Y) { alan = "6.Bölge"; serialPort1.Write("6"); } else if (X >= 0 && 210 >= X && Y >= 320 && 480 >= Y) { alan = "7.Bölge"; serialPort1.Write("7"); } else if (X >= 210 && 420 >= X && Y >= 320 && 480 >= Y) { alan = "8.Bölge"; serialPort1.Write("8"); } else if (X >= 420 && 640 >= X && Y >= 320 && 480 >= Y) { alan = "9.Bölge"; serialPort1.Write("9"); } g.DrawString(X.ToString() + "X" + Y.ToString() + alan, new Font("Arial", 12), Brushes.Red, new System.Drawing.Point(1, 1)); g.Dispose(); } pictureBox2.Image = imge2; } break; } pictureBox1.Image = imge1; }
private string RecognizeCaptcha(Image img, int varWidth, int varHeight, int varCaptchaLength) { Bitmap imagem = new Bitmap(img); imagem = imagem.Clone(new Rectangle(0, 0, varWidth, varHeight), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Invert inverter = new Invert(); ColorFiltering cor = new ColorFiltering(); cor.Blue = new AForge.IntRange(200, 255); //cor.Red = new AForge.IntRange(1, 255); //cor.Green = new AForge.IntRange(255, 255); Opening open = new Opening(); BlobsFiltering bc = new BlobsFiltering(); bc.MinHeight = 10; AForge.Imaging.Filters.BilateralSmoothing aa = new BilateralSmoothing(); ////AForge.Imaging.Filters.Grayscale filter1 = ////new AForge.Imaging.Filters.Grayscale(1, 1, 1); ////-Working//FiltersSequence seq = new FiltersSequence(inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter, filter1, aa); ////WorkingPureWhiteAndRED--//FiltersSequence seq = new FiltersSequence(inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter, aa); FiltersSequence seq = new FiltersSequence(inverter, open, cor, bc, aa, inverter); Bitmap immb = seq.Apply(imagem); EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new AForge.Imaging.RGB(Color.Red); //Pure White filter.Radius = 200; //Increase this to allow off-whites filter.FillColor = new AForge.Imaging.RGB(Color.Blue); //Replacement Colour filter.FillOutside = false; filter.ApplyInPlace(immb); pictureBox.Image = immb; // Make Image Clear Black and Line Blue. for (int i = 0; i < pictureBox.Image.Height; i++) { for (int j = 0; j < pictureBox.Image.Width; j++) { //Get the color at each pixel Color now_color = immb.GetPixel(j, i); if (now_color.Name == "ff0000ff") { immb.SetPixel(j, i, Color.Blue); } else if (lstBlackColorCodeFrame.Contains(now_color.Name)) { immb.SetPixel(j, i, Color.Black); } else if (now_color.Name == "ffffffff") { immb.SetPixel(j, i, Color.White); } else { immb.SetPixel(j, i, Color.Red); } } } // Remove Blue Line From Image and Replace With Transparent. for (int i = 0; i < pictureBox.Image.Height; i++) { for (int j = 0; j < pictureBox.Image.Width; j++) { //Get the color at each pixel Color now_color = immb.GetPixel(j, i); //Compare Pixel's Color ARGB property with the picked color's ARGB property if (now_color.Name == "ff0000ff") { if (i != 0) { bool varChangeColor = false; for (int k = 1; k <= 5; k++) { if ((i - k) > 0) { Color iRefValue = immb.GetPixel(j, i - k); if (lstBlackColorCodeFrame.Contains(iRefValue.Name) || iRefValue == Color.Red) { varChangeColor = true; break; } } } if (!varChangeColor) { for (int k = 1; k <= 5; k++) { if ((i + k) < pictureBox.Image.Height) { Color iRefValue = immb.GetPixel(j, i + k); if (lstBlackColorCodeFrame.Contains(iRefValue.Name) || iRefValue == Color.Red) { varChangeColor = true; break; } } } } if (varChangeColor) { immb.SetPixel(j, i, Color.Black); } else { // Commented To Make Transperent. //immb.SetPixel(j, i, Color.Transparent); } } } } } ////EuclideanColorFiltering filt = new EuclideanColorFiltering(); ////filt.CenterColor = new AForge.Imaging.RGB(Color.Blue); //Pure White ////filt.Radius = 200; //Increase this to allow off-whites ////filt.FillColor = new AForge.Imaging.RGB(Color.Transparent); //Replacement Colour ////filt.FillOutside = false; ////filt.ApplyInPlace(immb); pictureBox.Image = immb; string reconhecido = OCR(immb, varCaptchaLength); return(reconhecido); }
void reader_IRFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e) { if (mode == 1) { return; } var reference = e.FrameReference.AcquireFrame(); using (InfraredFrame frame = reference.InfraredFrameReference.AcquireFrame()) { if (frame != null) { warten.Visible = false; int width = frame.FrameDescription.Width; int height = frame.FrameDescription.Height; ushort[] data = new ushort[width * height]; byte[] pixelData = new byte[width * height * 4]; possibleTracker = new string[width * height * 4]; int xcoord = 0; int ycoord = 0; frame.CopyFrameDataToArray(data); int akt = 0; Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppRgb); for (int infraredIndex = 0; infraredIndex < data.Length; infraredIndex++) { ushort ir = data[infraredIndex]; byte intensity = (byte)(ir >> 8); pixelData[infraredIndex * 4] = intensity; // Blue pixelData[infraredIndex * 4 + 1] = intensity; // Green pixelData[infraredIndex * 4 + 2] = intensity; // Red pixelData[infraredIndex * 4 + 3] = 255; //Brightness } var bitmapdata = bitmap.LockBits( new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bitmap.PixelFormat ); IntPtr ptr = bitmapdata.Scan0; Marshal.Copy(pixelData, 0, ptr, pixelData.Length); bitmap.UnlockBits(bitmapdata); bitmap.RotateFlip(RotateFlipType.Rotate180FlipY); counter = new BlobCounter(); EuclideanColorFiltering filter = new EuclideanColorFiltering(); //ResizeNearestNeighbor filter2 = new ResizeNearestNeighbor(1920, 1080); filter.CenterColor = new RGB(Color.White); //Pure White filter.Radius = (short)trackBar1.Value; //Increase this to allow off-whites filter.FillOutside = false; filter.FillColor = new RGB(Color.White); //Replacement Color Bitmap bmp = filter.Apply(bitmap); //filter2.Apply(bmp); //filter3.Apply(bmp); //filter.CenterColor = new RGB(0, 0, 0); //filter.Radius = 100; //filter.ApplyInPlace(bmp); counter.MinWidth = 100; counter.MinHeight = 100; //counter.FilterBlobs = true; counter.BackgroundThreshold = Color.Gray; counter.ProcessImage(bmp); Blob[] blobs = counter.GetObjectsInformation(); Pen redPen = new Pen(Color.Red, 20);//Kreisradius Graphics g = Graphics.FromImage(bmp); SimpleShapeChecker shapeChecker = new SimpleShapeChecker(); for (int i = 0; i < blobs.Length; i++) { List <IntPoint> edgePoints = counter.GetBlobsEdgePoints(blobs[i]); AForge.Point center; float radius; if (shapeChecker.IsCircle(edgePoints, out center, out radius)) { g.DrawEllipse(redPen, (int)(center.X - radius), (int)(center.Y - radius), (int)(radius * 2), (int)(radius * 2)); if (kreise == 1) { ecken1_x = (int)center.X; ecken1_y = (int)center.Y; } if (kreise == 2) { ecken2_x = (int)center.X; ecken2_y = (int)center.Y; } if (kreise == 3) { ecken3_x = (int)center.X; ecken3_y = (int)center.Y; } if (kreise == 4) { ecken4_x = (int)center.X; ecken4_y = (int)center.Y; kreise = 0; } kreise++; } //anzeige.Text = center.X.ToString() + " " + center.Y.ToString(); //anzeige.Text = ecken_x[z].ToString() + " " + ecken_x[z].ToString(); anzeige.Text = "Punkt 1: " + ecken1_x + " " + ecken1_y + "\n" + "Punkt 2: " + ecken2_x + " " + ecken2_y + "\n" + "Punkt 3: " + ecken3_x + " " + ecken3_y + "\n" + "Punkt 4: " + ecken4_x + " " + ecken4_y; } pictureBox1.Image = bmp; } else { warten.Visible = true; } } }
private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs) { imge1 = (Bitmap)eventArgs.Frame.Clone(); Bitmap imge2 = (Bitmap)eventArgs.Frame.Clone(); if (radioButton1.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(225, 0, 0)); filter.Radius = 100; filter.ApplyInPlace(imge2); } if (radioButton2.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 255, 0)); filter.Radius = 100; filter.ApplyInPlace(imge2); } if (radioButton3.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(Color.FromArgb(0, 0, 255)); filter.Radius = 100; filter.ApplyInPlace(imge2); } switch (mode) { case 2: { g = Graphics.FromImage(imge2); g.DrawString(sayac.ToString(), new Font("Arial", 100), new SolidBrush(Color.Black), new PointF(2, 2)); g.Dispose(); } break; case 1: { BlobCounter blob = new BlobCounter(); blob.MinHeight = 15; blob.MinWidth = 15; blob.ObjectsOrder = ObjectsOrder.Size; blob.ProcessImage(imge2); Rectangle[] rects = blob.GetObjectsRectangles(); if (rects.Length > 0) { Rectangle obje = rects[0]; Graphics g = Graphics.FromImage(imge2); using (Pen pen = new Pen(Color.Black, 3)) { g.DrawRectangle(pen, obje); } X = obje.X; Y = obje.Y; g = Graphics.FromImage(imge2); if (X <= 320) { serialPort1.Write("l"); } if (X > 320) { serialPort1.Write("r"); } g.DrawString(X.ToString() + "X" + Y.ToString() + "Y", new Font("Arial", 12), Brushes.Red, new System.Drawing.Point(1, 1)); g.Dispose(); } pictureBox2.Image = imge2; } break; } pictureBox1.Image = imge1; }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap goruntu = (Bitmap)eventArgs.Frame.Clone(); Bitmap goruntu1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = goruntu; if (rdiobtnKirmizi.Checked) { // Filtre Oluşturma EuclideanColorFiltering filter = new EuclideanColorFiltering(); // orta kolonu ve yarıçapı ayarlama filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; // Filtre Uygulama filter.ApplyInPlace(goruntu1); nesnebul(goruntu1); } if (rdiobtnMavi.Checked) { // Filtre Oluşturma EuclideanColorFiltering filter = new EuclideanColorFiltering(); // orta kolonu ve yarıçapı ayarlama filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; // Filtre Uygulama filter.ApplyInPlace(goruntu1); nesnebul(goruntu1); } if (rdiobtnYesil.Checked) { // Filtre Oluşturma EuclideanColorFiltering filter = new EuclideanColorFiltering(); // orta kolonu ve yarıçapı ayarlama filter.CenterColor = new RGB(Color.FromArgb(0, 215, 0)); filter.Radius = 100; // Filtre Uygulama filter.ApplyInPlace(goruntu1); nesnebul(goruntu1); } if (rdbtnElleBelirleme.Checked) { // Filtre Oluşturma EuclideanColorFiltering filter = new EuclideanColorFiltering(); // orta kolonu ve yarıçapı ayarlama filter.CenterColor = new RGB(Color.FromArgb(R, G, B)); filter.Radius = 100; // Filtre Uygulama filter.ApplyInPlace(goruntu1); nesnebul(goruntu1); } }
void CıkısVideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { video = (Bitmap)eventArgs.Frame.Clone(); //aldığımız görüntüyü pictureBox1 a atarak görüntüyü alıyoruz. Bitmap video2 = (Bitmap)eventArgs.Frame.Clone(); filter.ApplyInPlace(video2); switch (mode) { case 2: { g = Graphics.FromImage(video2); //Değişiklik için grafik nesnesi oluşturduk g.DrawString(sayac.ToString(), new Font("Arial", 100), new SolidBrush(Color.Black), new PointF(2, 2)); g.Dispose(); } break; case 1: { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(215, 30, 30); filter.Radius = 100; filter.ApplyInPlace(video2); //blob filtre BlobCounter blob = new BlobCounter(); blob.MinHeight = 200; blob.MinWidth = 200; blob.ObjectsOrder = ObjectsOrder.Size; blob.ProcessImage(video2); Rectangle[] rects = blob.GetObjectsRectangles(); if (rects.Length > 0) { Rectangle obje = rects[0]; Graphics g = Graphics.FromImage(video2); using (Pen pen = new Pen(Color.White, 3)) { g.DrawRectangle(pen, obje); } yatayX = obje.X; dikeyY = obje.Y; g = Graphics.FromImage(video2); // 1 if (yatayX >= 0 && 200 > yatayX && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("A"); } // 2 else if (yatayX >= 200 && yatayX < 400 && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("B"); } // 3 else if (yatayX >= 400 && yatayX < 600 && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("C"); } // 4 else if (yatayX >= 0 && yatayX < 200 && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("D"); } // 5 else if (yatayX >= 200 && yatayX < 400 && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("E"); } // 6 else if (yatayX >= 400 && 600 >= yatayX && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("F"); } // 7 else if (yatayX >= 0 && 200 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("G"); } // 8 else if (yatayX >= 200 && 400 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("H"); } // 9 else if (yatayX >= 400 && 600 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("K"); } g.Dispose(); } // GO HOME else { serialPort1.Write("X"); } pictureBox2.Image = video2; } break; case 3: { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new RGB(215, 30, 30); filter.Radius = 100; filter.ApplyInPlace(video2); //blob filtre BlobCounter blob = new BlobCounter(); blob.MinHeight = 200; blob.MinWidth = 200; blob.ObjectsOrder = ObjectsOrder.Size; blob.ProcessImage(video2); Rectangle[] rects = blob.GetObjectsRectangles(); if (rects.Length > 0) { Rectangle obje = rects[0]; Graphics g = Graphics.FromImage(video2); using (Pen pen = new Pen(Color.White, 3)) { g.DrawRectangle(pen, obje); } yatayX = obje.X; dikeyY = obje.Y; g = Graphics.FromImage(video2); if (yatayX >= 0 && 200 > yatayX && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("M"); } else if (yatayX >= 200 && yatayX < 400 && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("N"); } else if (yatayX >= 400 && yatayX < 600 && dikeyY >= 0 && dikeyY < 100) { serialPort1.Write("S"); } else if (yatayX >= 0 && yatayX < 200 && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("L"); } else if (yatayX >= 200 && yatayX < 400 && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("R"); } else if (yatayX >= 400 && 600 >= yatayX && dikeyY >= 100 && 200 >= dikeyY) { serialPort1.Write("P"); } else if (yatayX >= 0 && 200 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("T"); } else if (yatayX >= 200 && 400 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("Y"); } else if (yatayX >= 400 && 600 >= yatayX && dikeyY >= 200 && 300 >= dikeyY) { serialPort1.Write("Z"); } g.Dispose(); } pictureBox2.Image = video2; } break; } pictureBox1.Image = video; }
public EuclidColorFilter(Color color, short radius) { Color = color; Radius = radius; filter = new EuclideanColorFiltering(new RGB(Color), Radius); }
void Finalvideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; if (radioButton1.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); //filtreyi oluşturuyoruz filter.CenterColor = new RGB(Color.FromArgb(255, 0, 0)); //merkez renkgi belirliyoruz filter.Radius = 120; //filtrenin uygulayacagı yarıçap uzunlugu filter.ApplyInPlace(image1); //filtreyi resme uyguluyoruz BlobCounter bc = new BlobCounter(); bc.ProcessImage(image1); Rectangle[] rects = bc.GetObjectsRectangles(); foreach (Rectangle rect in rects) { cisimxkordinati = rect.X; cisimykordinati = rect.Y; } cisimrengi = Color.FromArgb(255, 0, 0); bolgeliresim = image1; pictureBox2.Image = image1; int w = pictureBox2.Image.Size.Width; int h = pictureBox2.Image.Size.Height; double satırbulucu = (h / 3); double sutunbulucu = (w / 3); serialPort1.Write("0"); bolge = 0; if (cisimxkordinati <= sutunbulucu && cisimykordinati <= satırbulucu) { bolge = 1; serialPort1.Write("1"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 2; serialPort1.Write("2"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 3; serialPort1.Write("3"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 4; serialPort1.Write("4"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 5; serialPort1.Write("5"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 6; serialPort1.Write("6"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > (2 * satırbulucu)) { bolge = 7; serialPort1.Write("7"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 8; serialPort1.Write("8"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 9; serialPort1.Write("9"); } else { bolge = 0; serialPort1.Write("0"); } } if (radioButton2.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); //filtreyi oluşturuyoruz filter.CenterColor = new RGB(Color.FromArgb(0, 255, 0)); //merkez renkgi belirliyoruz filter.Radius = 100; //filtrenin uygulayacagı yarıçap uzunlugu filter.ApplyInPlace(image1); //filtreyi resme uyguluyoruz BlobCounter bc = new BlobCounter(); bc.ProcessImage(image1); Rectangle[] rects = bc.GetObjectsRectangles(); foreach (Rectangle rect in rects) { cisimxkordinati = rect.X; cisimykordinati = rect.Y; } cisimrengi = Color.FromArgb(0, 255, 0); bolgeliresim = image1; pictureBox2.Image = image1; int w = pictureBox2.Image.Size.Width; int h = pictureBox2.Image.Size.Height; double satırbulucu = (h / 3); double sutunbulucu = (w / 3); serialPort1.Write("0"); bolge = 0; if (cisimxkordinati <= sutunbulucu && cisimykordinati <= satırbulucu) { bolge = 1; serialPort1.Write("1"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 2; serialPort1.Write("2"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 3; serialPort1.Write("3"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 4; serialPort1.Write("4"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 5; serialPort1.Write("5"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 6; serialPort1.Write("6"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > (2 * satırbulucu)) { bolge = 7; serialPort1.Write("7"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 8; serialPort1.Write("8"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 9; serialPort1.Write("9"); } else { bolge = 0; serialPort1.Write("0"); } } if (radioButton3.Checked) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); //filtreyi oluşturuyoruz filter.CenterColor = new RGB(Color.FromArgb(0, 0, 255)); //merkez renkgi belirliyoruz filter.Radius = 120; //filtrenin uygulayacagı yarıçap uzunlugu filter.ApplyInPlace(image1); //filtreyi resme uyguluyoruz BlobCounter bc = new BlobCounter(); bc.ProcessImage(image1); Rectangle[] rects = bc.GetObjectsRectangles(); foreach (Rectangle rect in rects) { cisimxkordinati = rect.X; cisimykordinati = rect.Y; } cisimrengi = Color.FromArgb(0, 0, 255); bolgeliresim = image1; pictureBox2.Image = image1; int w = pictureBox2.Image.Size.Width; int h = pictureBox2.Image.Size.Height; double satırbulucu = (h / 3); double sutunbulucu = (w / 3); serialPort1.Write("0"); bolge = 0; if (cisimxkordinati <= sutunbulucu && cisimykordinati <= satırbulucu) { bolge = 1; serialPort1.Write("1"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 2; serialPort1.Write("2"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati <= satırbulucu) { bolge = 3; serialPort1.Write("3"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 4; serialPort1.Write("4"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 5; serialPort1.Write("5"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > satırbulucu && cisimykordinati <= (2 * satırbulucu)) { bolge = 6; serialPort1.Write("6"); } else if (cisimxkordinati <= sutunbulucu && cisimykordinati > (2 * satırbulucu)) { bolge = 7; serialPort1.Write("7"); } else if (cisimxkordinati > sutunbulucu && cisimxkordinati <= (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 8; serialPort1.Write("8"); } else if (cisimxkordinati > (2 * sutunbulucu) && cisimykordinati > (2 * satırbulucu)) { bolge = 9; serialPort1.Write("9"); } else { bolge = 0; serialPort1.Write("0"); } } }
/* FinalFrame_NewFrame is an event Handler which gets fired every time the webcam captures a fresh image. * This allows image data to be intercepted and different image processing techniques can be applied.*/ private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap image = (Bitmap)eventArgs.Frame.Clone(); Bitmap image1 = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = image; //pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; // pictureBox1.Image = image; /* Insert break-point here to view width and height of video in the ‘Locals’ Window. */ if (radiobtnRed.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(215, 0, 0)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); ProcessIMG(image1); } if (radiobtnBlue.Checked) { // create filter EuclideanColorFiltering filter = new EuclideanColorFiltering(); // set center colol and radius filter.CenterColor = new RGB(Color.FromArgb(30, 144, 255)); filter.Radius = 100; // apply the filter filter.ApplyInPlace(image1); ProcessIMG(image1); /* * if (objectX > 0) * { * // as the object is to the right of the screen. * sp.Write("6"); * Thread.Sleep(100); * //textBox.Text += ("Robot Drive Right " + Environment.NewLine); * * } * if (objectX < 0) * { * // as the object is to the left of the screen. * sp.Write("4"); * Thread.Sleep(100); * //textBox.Text += ("robot drive Left " + Environment.NewLine); * } * * if (objectX == 0) * { * // as the object is in the centre of the screen. * sp.Write("8"); * Thread.Sleep(100); * //textBox.Text += ("Forward " + Environment.NewLine); * } */ } }
public void test_creditcardcover() { try { const string FILE1 = @"C:\IMAGES\PB\PB742030.jpg"; const string FILE2 = @"C:\IMAGES\PB\PB742030_done2.jpg"; const string FILE3 = @"C:\IMAGES\PB\PB742030_done3.jpg"; const string FILE4 = @"C:\IMAGES\PB\PB742030_done4.jpg"; //using (var image = (Bitmap)Bitmap.FromFile(FILE1)) //{ // //Invert filter = new Invert(); // //filter.ApplyInPlace(image); // using (var img = image.ConvertToBitonal()) // { // img.Save(FILE2, ImageFormat.Jpeg); // } //} using (var image = (Bitmap)Bitmap.FromFile(FILE1)) { EuclideanColorFiltering filter = new EuclideanColorFiltering(); filter.CenterColor = new AForge.Imaging.RGB(Color.BlueViolet); //Pure White filter.Radius = 0; //Increase this to allow off-whites filter.FillColor = new AForge.Imaging.RGB(Color.Red); //Replacement Colour filter.ApplyInPlace(image); } return; //To gray scale using (var image = (Bitmap)Bitmap.FromFile(FILE1)) { FiltersSequence seq = new FiltersSequence(); seq.Add(Grayscale.CommonAlgorithms.BT709); //First add GrayScaling filter seq.Add(new OtsuThreshold()); //Then add binarization(thresholding) filter var img = seq.Apply(image); // Apply filters on source image img.Save(FILE2, ImageFormat.Jpeg); return; } using (var image = (Bitmap)Bitmap.FromFile(FILE1)) { Grayscale filter = new Grayscale(0.2125, 0.7154, 0.0721); // apply the filter using (Bitmap grayImage = filter.Apply(image)) { VerticalIntensityStatistics vis = new VerticalIntensityStatistics(grayImage); // get gray histogram (for grayscale image) var histogram = vis.Gray; // output some histogram's information System.Diagnostics.Debug.WriteLine("Mean = " + histogram.Mean); System.Diagnostics.Debug.WriteLine("Min = " + histogram.Min); System.Diagnostics.Debug.WriteLine("Max = " + histogram.Max); } } using (var image = (Bitmap)Bitmap.FromFile(FILE2)) { VerticalIntensityStatistics vis = new VerticalIntensityStatistics(image); // get gray histogram (for grayscale image) var histogram = vis.Gray; // output some histogram's information System.Diagnostics.Debug.WriteLine("Mean = " + histogram.Mean); System.Diagnostics.Debug.WriteLine("Min = " + histogram.Min); System.Diagnostics.Debug.WriteLine("Max = " + histogram.Max); } //using (var image = (Bitmap)Bitmap.FromFile(FILE2)) //{ // //EuclideanColorFiltering filter = new EuclideanColorFiltering(); // //// set center colol and radius // //filter.CenterColor = new RGB(82, 26, 39); // //filter.Radius = 100; // //// apply the filter // //filter.ApplyInPlace(image); // Median filter2 = new Median(); // // apply the filter // filter2.ApplyInPlace(image); // image.Save(FILE3, ImageFormat.Jpeg); //} using (var image = (Bitmap)Bitmap.FromFile(FILE2)) { //Median filter2 = new Median(); //// apply the filter //filter2.ApplyInPlace(image); //ConservativeSmoothing filter = new ConservativeSmoothing(); //filter.ApplyInPlace(image); //BilateralSmoothing filter = new BilateralSmoothing(); //filter.KernelSize = 25; //filter.SpatialFactor = 10; //filter.ColorFactor = 60; //filter.ColorPower = 0.5; //// apply the filter //filter.ApplyInPlace(image); /////////////////////////////////////////// // create filter BlobsFiltering filter3 = new BlobsFiltering(); // configure filter //filter.CoupledSizeFiltering = true; filter3.MinWidth = 20; filter3.MinHeight = 20; filter3.MaxWidth = 150; filter3.MaxHeight = 150; filter3.ApplyInPlace(image); //apply the filter //////////////////////////// //ExtractBiggestBlob filter = new ExtractBiggestBlob(); //// apply the filter //Bitmap biggestBlobsImage = filter.Apply(image); image.Save(FILE3, ImageFormat.Jpeg); } } catch (Exception ex) { Debug.WriteLine(ex); } }