2

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

1 に答える 1

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

これは、実行ユーザーがイメージ キャプチャ デバイスにアクセスする権限を持っていない可能性があることを示唆しています。

于 2013-10-08T00:24:14.803 に答える