我无法使用Emgu CV播放视频
它显示错误
无法从184.avi
创建捕获
以下是代码:
public partial class Form1 : Form
{
//Set the name of pop-up window
String winname = "First Window";
Timer My_Time = new Timer();
int FPS=30;
Capture _capture;
public Form1()
{
InitializeComponent();
//Frame Rate
My_Timer.Interval = 1000 / FPS;
My_Timer.Tick += new EventHandler(My_Timer_Tick);
My_Timer.Start();
_capture = new Capture("184.avi"); // Error this line
}
private void My_Timer_Tick(object sender, EventArgs e)
{
imageBox.Image = _capture.QueryFrame().ToBitmap();
}
我使用Windows 8 x64并安装emgucv-windows-universal-cuda 2.4.10.1940
bin中没有opencv_ffmpeg.dll
。所以我安装opencv-2.4.11并从OpenCV bin复制所有dll以粘贴到我的项目中的Debug中。我也将184.avi粘贴到Debug。但是当我运行它时会显示错误。如何使用Emgu CV播放视频?
答案 0 :(得分:0)
您的代码运行正常。我认为问题是您没有将视频文件导入Visual Studio。因此,尝试将视频文件导入Visual Studio,并将属性设置为始终复制。您可以在下面看到我已导入A.avi文件并将其属性设置为始终复制。
并且认为您可以使用imageBox.Image = _capture.QueryFrame();
而不是imageBox.Image = _capture.QueryFrame().ToBitmap();
,因为您不需要使用ImageBox转换为位图。
我使用的代码与您的代码相同。
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.UI;
using Emgu.CV.Features2D;
using Emgu.CV.Util;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{//Set the name of pop-up window
String winname = "First Window";
Timer My_Time = new Timer();
int FPS = 30;
Capture _capture;
public Form1()
{
InitializeComponent();
//Frame Rate
My_Time.Interval = 1000 / FPS;
My_Time.Tick += new EventHandler(My_Timer_Tick);
My_Time.Start();
_capture = new Capture("A.avi"); // Error this line
}
private void My_Timer_Tick(object sender, EventArgs e)
{
imageBox.Image = _capture.QueryFrame();
}
}
}
答案 1 :(得分:0)
您只需提供完整路径而不仅仅是文件名。
您没有与程序exe相同的文件夹中的视频文件。 如果您将视频文件放在程序exe旁边,它也应该可以工作。