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

AForge.NET DirectShow (C#)

2014-02-26 23:23 323 查看
作者:linq

转自: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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: