public void Different_levels_yield_different_images() { foreach (string file in this.images) { // arrange using (ImageFactory factory = new ImageFactory()) { factory.Load(file); OilPainting processor = new OilPainting(); processor.DynamicParameter = new OilPaintingParameters() { Levels = 10 }; OilPainting processor2 = new OilPainting(); processor2.DynamicParameter = new OilPaintingParameters() { Levels = 20 }; // act Bitmap result = new Bitmap(processor.ProcessImage(factory)); Bitmap result2 = new Bitmap(processor2.ProcessImage(factory)); result2.Save(string.Format("{0}/{1}_oil_levels2.jpg", Path.GetDirectoryName(file), Path.GetFileNameWithoutExtension(file)), ImageFormat.Jpeg); // assert result.Equals(result2).Should().BeFalse("because different parameters should yield different images"); } } }
public Bitmap ToOilPainting(Bitmap Im) { AForge.Imaging.Filters.OilPainting Img = new OilPainting(); Bitmap bmImage = AForge.Imaging.Image.Clone(new Bitmap(Im), PixelFormat.Format24bppRgb); return(Img.Apply(bmImage)); }
private void Oil_Filter_Process() { var filter = new OilPainting(15); AddLog("filtr OilPainting na " + _view.CurrentFile); filter.ApplyInPlace(_image); Thread.Sleep(200); }
private void Oil_Filter_Process(object callback) { var filter = new OilPainting(15); AddLog("filtr OilPainting na " + _view.CurrentFile); filter.ApplyInPlace(_image); Thread.Sleep(200); ((AutoResetEvent)callback).Set(); }
public mEffectDaube(int brushSize) { BitmapType = mFilter.BitmapTypes.None; BrushSize = brushSize; Effect = new OilPainting(); Effect.BrushSize = BrushSize; filter = Effect; }
static void Main(string[] args) { OilPainting monaLisa = new OilPainting(); monaLisa.Name = "Mona Lisa"; monaLisa.Painter = "Leonardo da Vinci"; //The following line will give an error if uncommented. Medium is read-only for this class. //monaLisa.Medium = "oil"; monaLisa.Year = 1503; monaLisa.Support = "canvas"; Console.WriteLine(monaLisa.describe()); //The medium can be read. Console.WriteLine(monaLisa.Medium); Fresco theCreationOfAdam = new Fresco(); theCreationOfAdam.Name = "The Creation of Adam"; theCreationOfAdam.Painter = "Michelangelo"; theCreationOfAdam.Location = "the Sistine Chapel"; theCreationOfAdam.Year = 1512; Console.WriteLine(theCreationOfAdam.describe()); Console.WriteLine(theCreationOfAdam.Medium); Watermedia lagoDAverno = new Watermedia(); lagoDAverno.Name = "Lago d'Averno"; lagoDAverno.Painter = "Jacob Philipp Hackert"; lagoDAverno.Type = "gouache"; lagoDAverno.Year = 1794; Console.WriteLine(lagoDAverno.describe()); Console.WriteLine(lagoDAverno.Medium); OtherPainting campbellsSoupCans = new OtherPainting(); campbellsSoupCans.Name = "Campbell's Soup Cans"; campbellsSoupCans.Painter = "Andy Warhole"; //Medium can be set for the OtherPainting class. campbellsSoupCans.Medium = "synthetic polymer"; campbellsSoupCans.TypeDescription = "screen print"; campbellsSoupCans.Year = 1962; Console.WriteLine(campbellsSoupCans.describe()); Console.WriteLine(campbellsSoupCans.Medium); }
public override void Image_is_processed() { foreach (string file in this.images) { // arrange using (ImageFactory factory = new ImageFactory()) { factory.Load(file); OilPainting processor = new OilPainting(); processor.DynamicParameter = new OilPaintingParameters(); // act Action act = () => { Image img = processor.ProcessImage(factory); img.Save(string.Format("{0}/{1}_oil_default.jpg", Path.GetDirectoryName(file), Path.GetFileNameWithoutExtension(file)), ImageFormat.Jpeg); }; // assert act.ShouldNotThrow("because the image should have been processed without error"); } } }
private void btn_apply_Click(object sender, EventArgs e) { effect = new OilPainting(); effect.setParameters(brush_width, color_nr); this.Close(); }
public static Bitmap FilterImage(Bitmap img, int filter) { Bitmap sourceImage = img; sourceImage = ImageUtil.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format32bppArgb); IFilter myFilter; Bitmap filteredImage = sourceImage; if (filter == Filters.filters["Greyscale"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); filteredImage = sourceImage; } else if (filter == Filters.filters["Sepia"]) { myFilter = new Sepia(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Invert"]) { sourceImage = ImageUtil.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new Invert(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["RotateChannel"]) { myFilter = new RotateChannels(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Threshold"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new Threshold(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["FloydFilter"]) { FloydSteinbergColorDithering myReduction = new FloydSteinbergColorDithering(); filteredImage = myReduction.Apply(sourceImage); } else if (filter == Filters.filters["OrderedDithering"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new OrderedDithering(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Sharpen"]) { myFilter = new Sharpen(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["DifferenceEdgeDetector"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new DifferenceEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["HomogenityEdgeDetector"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new HomogenityEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Sobel"]) { sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new SobelEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Jitter"]) { myFilter = new Jitter(); //Needs Expand filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["OilPainting"]) { sourceImage = ImageUtil.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new OilPainting(); //Needs Expand filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["TextureFiltering"]) { sourceImage = ImageUtil.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new Texturer(new TextileTexture(), 1.0, 0.8); //Needs Expand filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Median"]) { sourceImage = ImageUtil.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new Median(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Mean"]) { myFilter = new Mean(); filteredImage = myFilter.Apply(sourceImage); } else if (filter == Filters.filters["Blur"]) { myFilter = new GaussianBlur(); filteredImage = myFilter.Apply(sourceImage); } //Console.Write(filteredImage.PixelFormat.ToString()); //Console.Write(sourceImage.PixelFormat.ToString()); filteredImage = ImageUtil.convert(filteredImage, System.Drawing.Imaging.PixelFormat.Format32bppArgb); return(filteredImage); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from input parameters and /// to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA) { Bitmap sourceImage = null; DA.GetData(0, ref sourceImage); string filter = ""; DA.GetData(1, ref filter); sourceImage = ImageUtilities.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format32bppArgb); IFilter myFilter; Bitmap filteredImage = sourceImage; //Grayscale.CommonAlgorithms.Y.Apply switch (filter) { case "Greyscale": Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); filteredImage = sourceImage; break; case "Sepia": Console.Write("Applying: " + filter); myFilter = new Sepia(); filteredImage = myFilter.Apply(sourceImage); break; case "Invert": Console.Write("Applying: " + filter); sourceImage = ImageUtilities.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new Invert(); filteredImage = myFilter.Apply(sourceImage); break; case "RotateChannel": Console.Write("Applying: " + filter); myFilter = new RotateChannels(); filteredImage = myFilter.Apply(sourceImage); break; case "Threshold": //Need Extended Version Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new Threshold(); filteredImage = myFilter.Apply(sourceImage); break; case "FloydFilter": Console.Write("Applying: " + filter); //sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); //myFilter = new FloydSteinbergColorDithering(); FloydSteinbergColorDithering myReduction = new FloydSteinbergColorDithering(); filteredImage = myReduction.Apply(sourceImage); //filteredImage = myFilter.Apply(sourceImage); break; case "OrderedDithering": Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new OrderedDithering(); filteredImage = myFilter.Apply(sourceImage); break; case "Sharpen": Console.Write("Applying: " + filter); myFilter = new Sharpen(); filteredImage = myFilter.Apply(sourceImage); break; case "DifferenceEdgeDetector": Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new DifferenceEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); break; case "HomogenityEdgeDetector": Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new HomogenityEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); break; case "Sobel": Console.Write("Applying: " + filter); sourceImage = Grayscale.CommonAlgorithms.RMY.Apply(sourceImage); myFilter = new SobelEdgeDetector(); filteredImage = myFilter.Apply(sourceImage); break; case "Jitter": Console.Write("Applying: " + filter); myFilter = new Jitter(); //Needs Expand filteredImage = myFilter.Apply(sourceImage); break; case "OilPainting": Console.Write("Applying: " + filter); myFilter = new OilPainting(); //Needs Expand filteredImage = myFilter.Apply(sourceImage); break; case "TextureFiltering": Console.Write("Applying: " + filter); sourceImage = ImageUtilities.convert(sourceImage, System.Drawing.Imaging.PixelFormat.Format24bppRgb); myFilter = new Texturer(new TextileTexture(), 1.0, 0.8); //Needs Expand filteredImage = myFilter.Apply(sourceImage); break; case "Median": Console.Write("Applying: " + filter); myFilter = new Median(); filteredImage = myFilter.Apply(sourceImage); break; case "Mean": Console.Write("Applying: " + filter); myFilter = new Mean(); filteredImage = myFilter.Apply(sourceImage); break; case "Blur": //Need Extended Version Console.Write("Applying: " + filter); myFilter = new GaussianBlur(); filteredImage = myFilter.Apply(sourceImage); break; default: Console.Write("No Filter"); break; } Console.Write(filteredImage.PixelFormat.ToString()); Console.Write(sourceImage.PixelFormat.ToString()); filteredImage = ImageUtilities.convert(filteredImage, System.Drawing.Imaging.PixelFormat.Format32bppArgb); DA.SetData(0, filteredImage); }
protected void Button_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName); Label5.Text = "File name: " + FileUpload1.PostedFile.FileName; String path; String pathURL; using (System.Drawing.Image tempImage = System.Drawing.Image.FromFile("C:\\inetpub\\wwwroot\\images\\" + FileUpload1.FileName)) { // Create string to draw. String drawString = TextBox4.Text; // Create font and brush. Font drawFont = new Font("Impact", 100); SolidBrush drawBrush = new SolidBrush(Color.Red); // Create point for upper-left corner of drawing. PointF drawPoint = new PointF(75.0F, 25.0F); // Draw string to screen. using (Graphics g = Graphics.FromImage(tempImage)) { g.DrawString(drawString, drawFont, drawBrush, drawPoint); } using (var m = new MemoryStream()) { String time_stamp = Stopwatch.GetTimestamp().ToString(); String uniqueName = TextBox5.Text; path = Server.MapPath("/images/") + uniqueName + time_stamp + FileUpload1.FileName; pathURL = "/images/" + uniqueName + time_stamp + FileUpload1.FileName; new Bitmap(tempImage, 300, 300).Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); Image1.ImageUrl = pathURL; // create a filter Grayscale GrayFilter = new Grayscale(0.2125, 0.7154, 0.0721); Sepia SepiaFilter = new Sepia(); OilPainting OilFilter = new OilPainting(15); // apply the filter Bitmap test = new Bitmap(tempImage, 300, 300); if (RadioButtonList1.SelectedIndex == 0) { } else if (RadioButtonList1.SelectedIndex == 1) { Bitmap sepiaImage = SepiaFilter.Apply(test); sepiaImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); Image1.ImageUrl = pathURL; } else if (RadioButtonList1.SelectedIndex == 2) { Bitmap grayImage = GrayFilter.Apply(test); grayImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); Image1.ImageUrl = pathURL; } else if (RadioButtonList1.SelectedIndex == 3) { Bitmap oilImage = OilFilter.Apply(test); oilImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); Image1.ImageUrl = pathURL; } } } ////These is where I submit the information to the database. string qemail = Request.QueryString["email"]; string memepath = pathURL; string memetext = TextBox4.Text; string timestamp = Stopwatch.GetTimestamp().ToString(); int baseLikes = 0; int uploaded = 0; string connectionString = "uid=myusername;server=192.168.12.136;port=3306;database=it210b;password=123456;"; MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); ////This is the command for grabbing the userID MySqlCommand IDCommand = new MySqlCommand(); IDCommand.CommandText = "Select userId From it210b.users WHERE email = @qemail"; IDCommand.Parameters.AddWithValue("@qemail", qemail); IDCommand.Connection = connection; string userID = IDCommand.ExecuteScalar().ToString(); ////This is where I insert image info into DB. You have to assign your command a connection to use. MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = "Insert INTO it210b.images (imagePath, altText, userId, numLikes, uploaded) VALUES (@imagePath, @altText, @userId, @numLikes, @uploaded )"; command.Prepare(); command.Parameters.AddWithValue("@imagePath", memepath); command.Parameters.AddWithValue("@altText", memetext); command.Parameters.AddWithValue("@userId", userID); command.Parameters.AddWithValue("@numLikes", baseLikes); command.Parameters.AddWithValue("@uploaded", uploaded); command.ExecuteNonQuery(); HtmlMeta meta = new HtmlMeta(); meta.HttpEquiv = "Refresh"; meta.Content = "2;url=http://192.168.12.136:1337/memes"; this.Page.Controls.Add(meta); } else { Label5.Text = "No file found. Please select a file and try again."; } }
private void button2_Click(object sender, EventArgs e) { button2.Text = "处理中"; switch (comboBox4.SelectedIndex) { case 0: { Bitmap temp = (Bitmap)pictureBox1.Image; OilPainting filter3 = new OilPainting(10); // apply the filter filter3.ApplyInPlace(temp); this.pictureBox2.Image = ResizeBitmap(temp); break; } case 1: { Bitmap temp = (Bitmap)pictureBox1.Image; temp = new Grayscale(0.2125, 0.7154, 0.0721).Apply(temp); DifferenceEdgeDetector edgeDetector = new DifferenceEdgeDetector(); temp = edgeDetector.Apply(temp); temp = new Threshold((int)numericUpDown1.Value).Apply(temp); //FillHoles filter2 = new FillHoles(); //filter2.MaxHoleHeight = MinHeight; //filter2.MaxHoleWidth = MaxWidth; //filter2.CoupledSizeFiltering = false; // apply the filter //temp = filter2.Apply(temp); //HorizontalRunLengthSmoothing hrls = new HorizontalRunLengthSmoothing(40); // apply the filter //hrls.ApplyInPlace(temp); /*AForge.Imaging.Filters.BlobsFiltering filter = new AForge.Imaging.Filters.BlobsFiltering(); * // 设置过滤条件(对象长、宽至少为70) * filter.CoupledSizeFiltering = true; * filter.MaxWidth = (int)numericUpDown3.Value; * filter.MaxHeight = (int)numericUpDown4.Value; * filter.MinWidth = (int)numericUpDown5.Value; * filter.MinHeight = (int)numericUpDown6.Value; * filter.ApplyInPlace(temp);*/ BlobCounter blobCounter = new BlobCounter(); blobCounter.MinHeight = 32; blobCounter.MinWidth = 32; blobCounter.FilterBlobs = true; blobCounter.ObjectsOrder = ObjectsOrder.Size; // 4 - find all stand alone blobs blobCounter.ProcessImage(temp); Blob[] blobs = blobCounter.GetObjectsInformation(); SimpleShapeChecker shapeChecker = new SimpleShapeChecker(); List <IntPoint> corners = null; List <IntPoint> corners2 = null; for (int i = 0, n = blobs.Length; i < n; i++) { List <IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blobs[i]); // does it look like a quadrilateral ? if (shapeChecker.IsQuadrilateral(edgePoints, out corners)) { // get edge points on the left and on the right side List <IntPoint> leftEdgePoints, rightEdgePoints; blobCounter.GetBlobsLeftAndRightEdges(blobs[i], out leftEdgePoints, out rightEdgePoints); listBox1.DataSource = leftEdgePoints; listBox2.DataSource = rightEdgePoints; } } //listBox1.DataSource = corners; //listBox2.DataSource = corners2; this.pictureBox1.Image = temp; break; } case 2: { Bitmap bt2 = new Bitmap(@"D:\TCL条码\截图01.bmp"); Bitmap bt1 = new Bitmap(@"D:\TCL条码\截图03.bmp"); //Bitmap bt1 = new Bitmap(pictureBox2.Image); ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.80f); //基于一定的相似性阈值获得匹配块 TemplateMatch[] matchings = tm.ProcessImage(bt1, bt2); BitmapData data = bt1.LockBits( new Rectangle(0, 0, bt1.Width, bt1.Height), ImageLockMode.ReadWrite, bt1.PixelFormat); foreach (TemplateMatch m in matchings) { Drawing.Rectangle(data, m.Rectangle, Color.Red); } bt1.UnlockBits(data); pictureBox2.Image = bt1; break; } case 3: { Bitmap bt2 = new Bitmap(@"D:\TCL条码\Canny算法.png"); AForge.Imaging.Filters.BlobsFiltering filter = new AForge.Imaging.Filters.BlobsFiltering(); // 设置过滤条件(对象长、宽至少为70) filter.CoupledSizeFiltering = true; filter.MaxWidth = (int)numericUpDown3.Value; filter.MaxHeight = (int)numericUpDown4.Value; filter.MinWidth = (int)numericUpDown5.Value; filter.MinHeight = (int)numericUpDown6.Value; filter.ApplyInPlace(bt2); pictureBox1.Image = bt2; byte[] RESULT = BitmapToBytes(bt2); break; } case 4: { Bitmap temp = (Bitmap)pictureBox1.Image; temp = new Grayscale(0.2125, 0.7154, 0.0721).Apply(temp); AForge.Imaging.Filters.CannyEdgeDetector filter = new AForge.Imaging.Filters.CannyEdgeDetector(); filter.ApplyInPlace(temp); pictureBox2.Image = temp; break; } } button2.Text = "处理"; }
public OilPaintingFilter() { oilPainting = new OilPainting(); //oilPainting.BrushSize = 15; }