static void editarImagen(string rutaImagen) { System.Drawing.Bitmap imagen; //cargar la imagen de la ruta de la imagen imagen = (Bitmap)Bitmap.FromFile(rutaImagen); //crear la secuencia de filtros AForge.Imaging.Filters.FiltersSequence filter = new AForge.Imaging.Filters.FiltersSequence(); //agregar los filtros a la secuencia de filtros filter.Add(new AForge.Imaging.Filters.ContrastCorrection(5)); filter.Add(new AForge.Imaging.Filters.BrightnessCorrection(5)); //aplicar los filtros imagen = filter.Apply(imagen); imagen.Save(@AppDomain.CurrentDomain.BaseDirectory + @"\Machote\FotoFirma-Copia-Editada.png"); imagen.Dispose(); }
public async Task RandomBlur() { await Context.Channel.SendMessageAsync("I will see whats on the MENU"); // load an image Bitmap image = (Bitmap)Bitmap.FromFile(@"D:\Main Folder\Personal Projects\discord-blur-bot\discord-blur-bot\discord-blur-bot\Core\Data\Image bank\test.jpg"); //setup filters AForge.Imaging.Filters.FiltersSequence filter = new AForge.Imaging.Filters.FiltersSequence(); filter.Add(new AForge.Imaging.Filters.ResizeBilinear(1080, 720)); listoffilters.Add(new AForge.Imaging.Filters.AdditiveNoise(new AForge.Math.Random.UniformGenerator(new AForge.Range(-50, 50)))); //filter.Add(new AForge.Imaging.Filters.BayerDithering()); listoffilters.Add(new AForge.Imaging.Filters.Blur()); //filter.Add(new AForge.Imaging.Filters.CannyEdgeDetector()); listoffilters.Add(new AForge.Imaging.Filters.GammaCorrection(0.5)); listoffilters.Add(new AForge.Imaging.Filters.GaussianBlur(4, 11)); listoffilters.Add(new AForge.Imaging.Filters.GaussianSharpen(4, 11)); //filter.Add(new AForge.Imaging.Filters.Sepia()); listoffilters.Add(new AForge.Imaging.Filters.Jitter(4)); listoffilters.Add(new AForge.Imaging.Filters.OilPainting(10)); listoffilters.Add(new AForge.Imaging.Filters.Pixellate()); //filter.Add(new AForge.Imaging.Filters.RotateBilinear(45)); //filter.Add(new AForge.Imaging.Filters.GaussianSharpen(4, 11)); foreach (AForge.Imaging.Filters.IFilter currfilter in listoffilters) { Random randgen = new Random(); if (randgen.Next(0, 2) == 1) { filter.Add(currfilter); } } // create filter //AForge.Imaging.Filters.Median filter = new AForge.Imaging.Filters.Median(); // apply filter System.Drawing.Bitmap newImage = filter.Apply(image); //applyinplace newImage.Save(@"D:\Main Folder\Personal Projects\discord-blur-bot\discord-blur-bot\discord-blur-bot\Core\Data\Image bank\test-formatted.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); await Context.Channel.SendFileAsync(@"D:\Main Folder\Personal Projects\discord-blur-bot\discord-blur-bot\discord-blur-bot\Core\Data\Image bank\test-formatted.jpg", "here is your gift"); }
private void CameraZm_NewVideoSample(object sender, WPFMediaKit.DirectShow.MediaPlayers.VideoSampleArgs e) { Dispatcher.Invoke(new Action(delegate() { System.Drawing.Bitmap oNewFrame = e.VideoFrame; AForge.Imaging.Filters.FiltersSequence seq = new AForge.Imaging.Filters.FiltersSequence(); seq.Add(new AForge.Imaging.Filters.Grayscale(0.2125, 0.7154, 0.0721)); seq.Add(new AForge.Imaging.Filters.Threshold(Threshold)); seq.Add(new AForge.Imaging.Filters.GrayscaleToRGB()); System.Drawing.Bitmap oFilterBitmap = seq.Apply(oNewFrame); var bitmapData = oFilterBitmap.LockBits( new System.Drawing.Rectangle(0, 0, oFilterBitmap.Width, oFilterBitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, oFilterBitmap.PixelFormat); byte[] destArr = new byte[bitmapData.Stride * bitmapData.Height]; System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, destArr, 0, bitmapData.Stride * bitmapData.Height); oFilterBitmap.UnlockBits(bitmapData); var bitmapSource = BitmapSource.Create( bitmapData.Width, bitmapData.Height, 96, 96, PixelFormats.Bgr24, null, bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); this.ImgMainZm.Source = bitmapSource; try { this.ARRgbRaster.wrapBuffer(destArr); int detectedMkrs = this.ARDetectMarker.detectMarkerLite(this.ARRgbRaster, Threshold); this.CvMainZm.Children.Clear(); if (detectedMkrs > 0) { for (int i = 0; i < detectedMkrs; i++) { this.ShowMarkerRect(ARDetectMarker.getCorners(i)); } } } catch { } })); }
private void CameraZm_NewVideoSample(object sender, WPFMediaKit.DirectShow.MediaPlayers.VideoSampleArgs e) { Dispatcher.Invoke(new Action(delegate() { System.Drawing.Bitmap oNewFrame = e.VideoFrame; AForge.Imaging.Filters.FiltersSequence seq = new AForge.Imaging.Filters.FiltersSequence(); seq.Add(new AForge.Imaging.Filters.Grayscale(0.2125, 0.7154, 0.0721)); seq.Add(new AForge.Imaging.Filters.Threshold(127)); seq.Add(new AForge.Imaging.Filters.GrayscaleToRGB()); System.Drawing.Bitmap oFilterBitmap = seq.Apply(oNewFrame); var bitmapData = oFilterBitmap.LockBits( new System.Drawing.Rectangle(0, 0, oFilterBitmap.Width, oFilterBitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, oFilterBitmap.PixelFormat); byte[] destArr = new byte[bitmapData.Stride * bitmapData.Height]; System.Runtime.InteropServices.Marshal.Copy(bitmapData.Scan0, destArr, 0, bitmapData.Stride * bitmapData.Height); var bitmapSource = BitmapSource.Create( bitmapData.Width, bitmapData.Height, 96, 96, PixelFormats.Bgr24, null, bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); oFilterBitmap.UnlockBits(bitmapData); this.m_raster.wrapBuffer(destArr); try { int detectedMkrs = this.m_ar.detectMarkerLite(this.m_raster, m_threshold); NyARDoublePoint2d[] points = null; List <NyARDoublePoint2d[]> ltPoints = new List <NyARDoublePoint2d[]>(); if (detectedMkrs > 0) { points = m_ar.getCorners(0); ltPoints.Add(points); for (int i = 0; i < detectedMkrs; i++) { NyARDoublePoint2d[] oMarkerPoints = m_ar.getCorners(i); ltPoints.Add(oMarkerPoints); } } Dispatcher.BeginInvoke(new Action(delegate() { try { this.ImgMainZm.Source = bitmapSource; this.CvMainZm.Children.Clear(); for (int i = 0; i < ltPoints.Count; i++) { NyARDoublePoint2d[] oMarkerPoints = ltPoints[i]; Polygon oPolygon = new Polygon() { SnapsToDevicePixels = true, Fill = new SolidColorBrush(Colors.Violet), Opacity = 0.8, Stroke = new SolidColorBrush(Colors.Red) }; oPolygon.Points = new PointCollection(new Point[] { new Point(oMarkerPoints[0].x, cameraResY - oMarkerPoints[0].y), new Point(oMarkerPoints[1].x, cameraResY - oMarkerPoints[1].y), new Point(oMarkerPoints[2].x, cameraResY - oMarkerPoints[2].y), new Point(oMarkerPoints[3].x, cameraResY - oMarkerPoints[3].y) }); this.CvMainZm.Children.Add(oPolygon); } } catch { } }), null); } catch { } })); }
void CaptureListener.OnBuffer(CaptureDevice i_sender, double i_sample_time, IntPtr i_buffer, int i_buffer_len) { int w = i_sender.video_width; int h = i_sender.video_height; int s = w * (i_sender.video_bit_count / 8); AForge.Imaging.Filters.FiltersSequence seq = new AForge.Imaging.Filters.FiltersSequence(); seq.Add(new AForge.Imaging.Filters.Grayscale(0.2125, 0.7154, 0.0721)); seq.Add(new AForge.Imaging.Filters.Threshold(127)); seq.Add(new AForge.Imaging.Filters.GrayscaleToRGB()); AForge.Imaging.UnmanagedImage srcImg = new AForge.Imaging.UnmanagedImage(i_buffer, w, h, s, System.Drawing.Imaging.PixelFormat.Format32bppRgb); AForge.Imaging.UnmanagedImage outputImg = seq.Apply(srcImg); byte[] destArr = new byte[outputImg.Stride * outputImg.Height]; System.Runtime.InteropServices.Marshal.Copy(outputImg.ImageData, destArr, 0, outputImg.Stride * outputImg.Height); this.m_raster.wrapBuffer(destArr); try { //this.m_ar. int detectedMkrs = this.m_ar.detectMarkerLite(this.m_raster, m_threshold); NyARDoublePoint2d[] points = null; List <NyARDoublePoint2d[]> ltPoints = new List <NyARDoublePoint2d[]>(); if (detectedMkrs > 0) { points = m_ar.getCorners(0); ltPoints.Add(points); for (int i = 1; i < detectedMkrs; i++) { NyARDoublePoint2d[] oMarkerPoints = m_ar.getCorners(i); ltPoints.Add(oMarkerPoints); } } Dispatcher.BeginInvoke(new Action(delegate() { try { TransformedBitmap b = new TransformedBitmap(); b.BeginInit(); b.Source = BitmapSource.Create(w, h, 96.0, 96.0, PixelFormats.Bgr32, BitmapPalettes.WebPalette, i_buffer, i_buffer_len, s); b.SetValue(TransformedBitmap.TransformProperty, new ScaleTransform(-1, -1)); b.EndInit(); image1.SetValue(Image.SourceProperty, b); if (points != null && points.Length == 4) { recognizedTag.Points = new PointCollection(new Point[] { new Point(cameraResX - points[0].x, cameraResY - points[0].y), new Point(cameraResX - points[1].x, cameraResY - points[1].y), new Point(cameraResX - points[2].x, cameraResY - points[2].y), new Point(cameraResX - points[3].x, cameraResY - points[3].y) }); recognizedTag.Visibility = System.Windows.Visibility.Visible; } else { recognizedTag.Visibility = System.Windows.Visibility.Hidden; } this.CvMainZm.Children.Clear(); for (int i = 1; i < ltPoints.Count; i++) { NyARDoublePoint2d[] oMarkerPoints = ltPoints[i]; Polygon oPolygon = new Polygon() { SnapsToDevicePixels = true, Fill = new SolidColorBrush(Colors.Violet), Opacity = 0.8, Stroke = new SolidColorBrush(Colors.Red) }; oPolygon.Points = new PointCollection(new Point[] { new Point(cameraResX - oMarkerPoints[0].x, cameraResY - oMarkerPoints[0].y), new Point(cameraResX - oMarkerPoints[1].x, cameraResY - oMarkerPoints[1].y), new Point(cameraResX - oMarkerPoints[2].x, cameraResY - oMarkerPoints[2].y), new Point(cameraResX - oMarkerPoints[3].x, cameraResY - oMarkerPoints[3].y) }); this.CvMainZm.Children.Add(oPolygon); } } catch { } }), null); } catch { } }
void CaptureListener.OnBuffer(CaptureDevice i_sender, double i_sample_time, IntPtr i_buffer, int i_buffer_len) { // calculate size of the frame bitmap int w = i_sender.video_width; int h = i_sender.video_height; int s = w * (i_sender.video_bit_count / 8); // stride AForge.Imaging.Filters.FiltersSequence seq = new AForge.Imaging.Filters.FiltersSequence(); seq.Add(new AForge.Imaging.Filters.Grayscale(0.2125, 0.7154, 0.0721)); seq.Add(new AForge.Imaging.Filters.Threshold(127)); seq.Add(new AForge.Imaging.Filters.GrayscaleToRGB()); AForge.Imaging.UnmanagedImage srcImg = new AForge.Imaging.UnmanagedImage(i_buffer, w, h, s, System.Drawing.Imaging.PixelFormat.Format32bppRgb); AForge.Imaging.UnmanagedImage outputImg = seq.Apply(srcImg); byte[] destArr = new byte[outputImg.Stride * outputImg.Height]; System.Runtime.InteropServices.Marshal.Copy(outputImg.ImageData, destArr, 0, outputImg.Stride * outputImg.Height); this.m_raster.wrapBuffer(destArr); try { int detectedMkrs = this.m_ar.detectMarkerLite(this.m_raster, m_threshold); NyARSquare square = null; if (detectedMkrs > 0) { NyARTransMatResult transMat = new NyARTransMatResult(); NyARDoublePoint2d[] points = m_ar.getCorners(0); // RichF added this method square = new NyARSquare(); square.sqvertex = points; } Dispatcher.BeginInvoke(new Action(delegate() { TransformedBitmap b = new TransformedBitmap(); b.BeginInit(); b.Source = BitmapSource.Create(w, h, dpiX, dpiY, PixelFormats.Bgr32, BitmapPalettes.WebPalette, i_buffer, i_buffer_len, s); b.SetValue(TransformedBitmap.TransformProperty, new ScaleTransform(-1, -1)); b.EndInit(); image1.SetValue(Image.SourceProperty, b); if (square != null) { recognizedTag.Points = new PointCollection(new Point[] { new Point(cameraResX - square.sqvertex[0].x, cameraResY - square.sqvertex[0].y), new Point(cameraResX - square.sqvertex[1].x, cameraResY - square.sqvertex[1].y), new Point(cameraResX - square.sqvertex[2].x, cameraResY - square.sqvertex[2].y), new Point(cameraResX - square.sqvertex[3].x, cameraResY - square.sqvertex[3].y) }); recognizedTag.Visibility = System.Windows.Visibility.Visible; } else { recognizedTag.Visibility = System.Windows.Visibility.Hidden; } }), null); } catch { } }
void CaptureListener.OnBuffer(CaptureDevice oCaptureDevice, double i_sample_time, IntPtr i_buffer, int i_buffer_len) { Dispatcher.Invoke(new Action(delegate() { if (this.IsMarkering) { Bitmap oNewFrame = new Bitmap(800, 600, System.Drawing.Imaging.PixelFormat.Format32bppRgb); #region Convert To Bitmap BitmapData oBitmapData = oNewFrame.LockBits(new System.Drawing.Rectangle(0, 0, oNewFrame.Width, oNewFrame.Height), ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppRgb); try { int w = 800 * 4; long st = (long)i_buffer + w * (600 - 1); long et = (long)oBitmapData.Scan0; for (int i = 600 - 1; i >= 0; i--) { CopyMemory((IntPtr)et, (IntPtr)st, w); st -= w; et += oBitmapData.Stride; } } finally { oNewFrame.UnlockBits(oBitmapData); } #endregion #region 灰度化 //var bitmapData = oNewFrame.LockBits( // new System.Drawing.Rectangle(0, 0, oNewFrame.Width, oNewFrame.Height), // System.Drawing.Imaging.ImageLockMode.ReadOnly, oNewFrame.PixelFormat); //var bitmapSource = BitmapSource.Create( // bitmapData.Width, bitmapData.Height, 96, 96, PixelFormats.Bgr24, null, // bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); //oNewFrame.UnlockBits(bitmapData); //this.ImgMainZm.Source = bitmapSource; #endregion AForge.Imaging.Filters.FiltersSequence seq = new AForge.Imaging.Filters.FiltersSequence(); seq.Add(new AForge.Imaging.Filters.Grayscale(0.2125, 0.7154, 0.0721)); seq.Add(new AForge.Imaging.Filters.Threshold(Threshold)); seq.Add(new AForge.Imaging.Filters.GrayscaleToRGB()); System.Drawing.Bitmap oFilterBitmap = seq.Apply(oNewFrame); var bitmapData = oFilterBitmap.LockBits( new System.Drawing.Rectangle(0, 0, oFilterBitmap.Width, oFilterBitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, oFilterBitmap.PixelFormat); var bitmapSource = BitmapSource.Create( bitmapData.Width, bitmapData.Height, 96, 96, PixelFormats.Bgr24, null, bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); oFilterBitmap.UnlockBits(bitmapData); this.ImgMainZm.Source = bitmapSource; //TransformedBitmap b = new TransformedBitmap(); //b.BeginInit(); //b.Source = BitmapSource.Create(oCaptureDevice.video_width, oCaptureDevice.video_height, 96.0, 96.0, // PixelFormats.Bgr32, BitmapPalettes.WebPalette, i_buffer, // i_buffer_len, oCaptureDevice.video_width * (oCaptureDevice.video_bit_count / 8)); //b.SetValue(TransformedBitmap.TransformProperty, new ScaleTransform(-1, -1)); //b.EndInit(); //this.ImgMainZm.SetValue(Image.SourceProperty, b); this.ARMarkerSystem.update(this.ARCameraSensor); this.CvMainZm.Children.Clear(); if (this.ARMarkerSystem.isExistMarker(this.MarkerID_Hiro)) { this.DrawARDetectInfo(this.MarkerID_Hiro, "Hiro"); } if (this.ARMarkerSystem.isExistMarker(this.MarkerID_KanJi)) { this.DrawARDetectInfo(this.MarkerID_KanJi, "KanJi"); } if (this.ARMarkerSystem.isExistMarker(this.MarkerID_VTT)) { this.DrawARDetectInfo(this.MarkerID_VTT, "VTT"); } if (this.ARMarkerSystem.isExistMarker(this.MarkerID_ABB)) { this.DrawARDetectInfo(this.MarkerID_ABB, "ABB"); } if (this.ARMarkerSystem.isExistMarker(this.Marker_Hello)) { this.DrawARDetectInfo(this.Marker_Hello, "Hello"); } } })); }