您的位置:首页 > 编程语言 > C#

AForge.NET DirectShow (C#)

2012-09-16 08:10 519 查看
http://zip.nvp.com.tw/forum.php?mod=viewthread&tid=2458&extra=page%3D12

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.Video;
using AForge.Video.DirectShow;
namespace AForge_DirectShow_CSharp
{
    public partial class Form1 : Form
    {
        VideoCaptureDevice videoSource;
        CannyEdgeDetector filter = new CannyEdgeDetector();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "Run")
            {
                button1.Text = "Stop";
                videoSource.Start();
            }
            else
            {
                button1.Text = "Run";
                videoSource.Stop();
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
            videoSource.NewFrame += videoSource_NewFrame;
        }
        void videoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap sourceImage = eventArgs.Frame;
            pictureBox1.Image = (Bitmap)sourceImage.Clone() ;
            pictureBox2.Image = filter.Apply(sourceImage.PixelFormat != PixelFormat.Format8bppIndexed ? Grayscale.CommonAlgorithms.BT709.Apply(sourceImage)
: sourceImage);
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            videoSource.SignalToStop();
        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# button object filter class