13

私は本当にEgmuCVの初心者です

次のコードを使用して、ウェブカメラから画像をキャプチャしようとしています。

//Program.cs (Winform)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Emgu.CV;
using Emgu.CV.UI;
using Emgu.Util;
using Emgu.CV.Structure;

namespace EgmuCVTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Capture cp = new Capture();
            ImageViewer imv = new ImageViewer();

            Application.Idle += new EventHandler(delegate(object s, EventArgs ea)
            {
                imv.Image = cp.QueryFrame();
            });

            imv.ShowDialog();

        }
    }
}

次のエラーが表示されます:

ここに画像の説明を入力

.exeフォルダーに必要なすべてのdllを確認して持っています

4

5 に答える 5

22

この同じ問題をしばらく経験した後、これ ( TypeInitializer Exception ) を解決するための手順が不完全であることがわかりました。

  1. 基本的なアプリの場合cvextern.dll, Emgu.CV.dll, Emgu.CV.UI.dll, Emgu.Util.dll、.EXE のディレクトリが必要です。

  2. opencv_calib3dXXX.dll, opencv_contribXXX.dll, opencv_coreXXX.dll, opencv_features2dXXX.dll, opencv_highguiXXX.dll, opencv_imgprocXXX.dll, opencv_legacyXXX.dll, opencv_mlXXX.dll, opencv_objectdetectXXX.dll, opencv_videoXXX.dll.exeディレクトリと必要な「x86」ディレクトリ内にx86(x64)ディレクトリが必要です。cudart32_42_9.dll, npp32_42_9.dll, opencv_flann240.dll

必要な DLL をすべて含めると、アプリはすぐに機能します。

于 2012-07-07T15:44:04.213 に答える
5

私は Emgu 3.0 64 ビットを使用しています。この問題を解決するために必要な唯一のことは、プロジェクトのビルド タイプを x64 に変更することです。

プロジェクト名を右クリック->プロパティ->ビルド->プラットフォーム ターゲット-> x64

http://www.codeproject.com/Articles/257502/Creating-Your-First-EMGU-Image-Processing-Projectを参照してください。

それが誰かを助けることを願っています。

于 2016-07-21T02:09:05.300 に答える
1

私に起こった別のケースは、NuGet パッケージがインストールされていたがプロジェクトに読み込まれていないため、参照は適切に見えたが、実行時に TypeInitializationException が発生したことでした。

-NuGet パッケージの管理

-パッケージのクロック管理

-現在のプロジェクトのボックスにチェックを入れます。

于 2016-01-28T17:29:02.893 に答える