AForge.NET otsu 二值化(C#)

http://zip.nvp.com.tw/forum.php?mod=viewthread&tid=2169&extra=page%3D17

AForge.NET otsu 二值化(C#)_第1张图片 

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();
        }
    }
}

你可能感兴趣的:(object,C#,filter,null,Class,button)