http://zip.nvp.com.tw/forum.php?mod=viewthread&tid=2169&extra=page%3D17
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using AForge; using AForge.Imaging; using AForge.Imaging.Filters; using AForge.Imaging.Textures; namespace AForge_Otsu_CSharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Bitmap sourceImage, filteredImage; Bitmap temp; OtsuThreshold filter = new OtsuThreshold(); sourceImage = (Bitmap)System.Drawing.Image.FromFile(Application.StartupPath + @"..\..\..\sample11.png"); if (pictureBox1.Image != null) { pictureBox1.Image.Dispose(); pictureBox1.Image = null; } if (pictureBox2.Image != null) { pictureBox2.Image.Dispose(); pictureBox2.Image = null; } temp = AForge.Imaging.Image.Clone(sourceImage, sourceImage.PixelFormat); sourceImage.Dispose(); sourceImage = temp; pictureBox1.Image = sourceImage; filteredImage = filter.Apply(sourceImage.PixelFormat != PixelFormat.Format8bppIndexed ? Grayscale.CommonAlgorithms.BT709.Apply(sourceImage) : sourceImage); pictureBox2.Image = filteredImage; this.Text = "Threshold Value : " + filter.ThresholdValue.ToString(); } } } |