尝试保存图像时,未处理访问冲突异常

时间:2013-10-08 00:19:47

标签: c# image emgucv

我是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();
        }
    }
}

1 个答案:

答案 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();

这表明执行用户可能没有访问图像捕获设备的权限。