我正在开发检测视频文件中运动的应用程序。我想通过以下方式做到这一点:
- 从硬盘读取视频。
- 将其转换为帧或图像数组(例如位图数组)。
- 对帧进行一些处理,包括通过减法检测运动。
- 将处理后的图像保存为视频文件。
- 在表单上播放该视频文件。
我在谷歌上找到了将视频转换为图像数组的好方法。但搜索后我认为使用 FFMPEG 读取和转换视频。因为我使用 C#,所以我尝试使用 AForge。
有关该课程的信息链接http://www.aforgenet.com/framework/docs/html/47582d8a-2eeb-03cf-03d5-de3e745a8a34.htm?
当我尝试使用 VideoFileSource 类重新读取视频并将其显示在图片框中时,我的问题出现了。但是当我尝试运行程序时,参数无效出现在
Application.Run(new Form1());
我的代码::
public partial class Form1 : Form
{
System.Windows.Forms.Timer timer;
string fileName;
VideoFileSource videoSource;
Thread myThread;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
OpenFileDialog openFiel = new OpenFileDialog();
if (openFiel.ShowDialog() == DialogResult.OK)
{
fileName = openFiel.FileName;
}
// create video source
videoSource = new VideoFileSource(fileName);
// set NewFrame event handler
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
// start the video source
videoSource.Start();
}
// New frame event handler, which is invoked on each new available video frame
private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
// get new frame
Bitmap bitmap = eventArgs.Frame;
pictureBox1.Image = bitmap;
// process the frame
}
private void button1_Click(object sender, EventArgs e)
{
}
}