我是Emgu CV的新手,我遇到了一个错误(“访问违规异常未处理”),试图保存图片。这是我尝试过的图像路径:
C:\\Users\crowds\Documents\Example\Sample.jpg
这是我的代码。有人可以帮忙吗?
//Form CameraCapture
private void button1_Click(object sender, EventArgs e)
{
if (_capture != null)
{
captured FF = new captured();
FF.Show();
this.Hide();
}
}
//Form captured
namespace CameraCapture
{
public partial class captured : Form
{
public captured()
{
InitializeComponent();
}
private void captured_Load(object sender, EventArgs e)
{
var capture = new Emgu.CV.Capture();
using (var ImageFrame = capture.QueryFrame())
{
if (ImageFrame != null)
{
pictureBox1.Image = ImageFrame.ToBitmap();
ImageFrame.Save(
@"C:\\Users\crowds\Documents\Example\Sample.jpg");
}
}
}
private void button1_Click(object sender, EventArgs e)
{
CameraCapture CC = new CameraCapture();
CC.Show();
this.Close();
}
}
}
答案 0 :(得分:2)
首先,您的路径中会有一个额外的"\"
字符。它应该是:
// Remove at *: *
// ImageFrame.Save(@"C:\\Users\crowds\Documents\Example\Sample.jpg");
ImageFrame.Save(@"C:\Users\crowds\Documents\Example\Sample.jpg");
其次,您收到的例外情况表明存在权限问题。默认情况下,除非您以该特定用户身份运行,否则您将无法保存到crowds
的用户文件夹中。这可能与上面的拼写错误有关,但也可能是由于在错误的帐户下运行。
访问冲突异常未处理,此处错误弹出Image frame = _capture.RetrieveBgrFrame();
这表明执行用户可能没有访问图像捕获设备的权限。